0

FBDialogs 似乎是分享照片的好方法,因为它不需要用户身份验证和应用程序属性。iOS 6 原生共享表看起来很棒,但我们的一些用户只安装了 facebook 应用程序并且没有在操作系统设置中配置 Facebook。我想使用 FBDialogs 然后回退到共享表。不幸的是,我找不到一种方法来完成这项看似简单的工作。所有OpenGraphAction函数都需要一个 URL 来生成预览文本。是否可以让它像 iOS 共享表一样工作?我想附加一个本地图像,设置初始文本,然后让用户输入任何内容并按上传。

4

1 回答 1

0

您很可能使用 [FBDialogs presentShareDialogWihtParams..] ,它只接受图像的链接。如果您想与 FBDialogs 共享本地图像,您必须使用 [FBDialogs presentShareDialogWithOpenGraphAciton..],其中操作对象引用本地图像。请记住,此 API 需要在 Facebook 开发人员门户中配置一个开放的图表故事,因此当帖子显示在 Facebook 上时,它将采用“用户动词名词”的形式。

查看Facebook 文档,其中讨论了可以在原生 Facebook 应用程序中呈现的不同类型的对话框。以下示例是从 Facebook 文档中复制的

// only supports passing a single image

NSArray* images = @[@{@"url": [UIImage imageNamed:@"my-awesome-meal-photo.jpg"], @"user_generated" : @"true"}];    

id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:@"https://example.com/cooking-app/meal/Lamb-Vindaloo.html" forKey:@"meal"];
[action setObject:images forKey:@"image"];

[FBDialogs presentShareDialogWithOpenGraphAction:action
                                  actionType:@"fbsdktoolkit:cook"
                         previewPropertyName:@"meal"
                                     handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                         if(error) {
                                             NSLog(@"Error: %@", error.description);
                                         } else {
                                             NSLog(@"Success!");
                                         }
                                     }];
于 2013-12-23T23:04:14.153 回答