如何使用iOS FBDialogs将照片上传到Facebook?

时间:2013-06-15 17:45:45

标签: ios facebook-ios-sdk

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

1 个答案:

答案 0 :(得分:0)

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

查看Facebook docs,其中讨论了本地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!");
                                         }
                                     }];