iOS Facebook SDK 3.2.1 Feed post error

时间:2013-04-06 10:18:15

标签: ios facebook-ios-sdk

我正在开发iOS App并且它具有简单的Facebook共享功能,基本上它允许您通过在Feed中发布来共享此应用程序的链接。

我用这种方式使用facebook SDK 3.2.1:

NSMutableDictionary *params = 
    [NSMutableDictionary dictionaryWithObjectsAndKeys:
        @"Test tweet", @"name",
        @"Test", @"description",
        @"http://myapplink.com", 
        @"link",
        @"http://myapppicture.com/picture.jpg", 
        @"picture",
        nil];

[FBWebDialogs presentFeedDialogModallyWithSession:nil
    parameters:params
    handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
        if (error) {
            NSLog(@"Error publishing story.");
        } else {
            if (result == FBWebDialogResultDialogNotCompleted) {
                NSLog(@"User canceled story publishing.");
            } else {
                NSLog(@"No error!");
            }
         }
     }];

问题是:当此代码运行时,它会显示Facebook登录对话框,在我登录后,我在屏幕上看到此错误:“发生错误。请稍后再试”。 控制台中没有任何内容,但是如果我关闭此对话框,它只会记录“用户取消的故事发布。”

应用程序设置非常基本 - 我设置了所有内容,就像facebook要求的那样: http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/

我的问题是:有人遇到同样的问题吗?什么可以解决方案? 谢谢!

1 个答案:

答案 0 :(得分:7)

现在这很简单,我觉得有点愚蠢:) 但无论如何,我希望这将有助于任何将遇到同样问题的人。

通常,我通过在我的“params”字典中添加一个键值对来解决问题 - 对于键@“app_id”,值@“my_facebook_app_id”。 所以正确的字典看起来像:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"11111111", @"app_id",
                               @"Test tweet", @"name",
                               @"Test", @"description",
                               @"http://sometestsite", @"link",
                             @"http://site.com/testimage.jpg", @"picture",
                               nil];

Facebook SDK说app_id键是“必需的,但是由大多数SDK自动指定” - 即使我通过My​​App-Info.plist文件提供了我的app_id,它似乎没有自动指定(或者我做错了什么)。

因此,如果您遇到同样的问题,请尝试添加此@“app_id”键 - 这应该会有所帮助。