我正在开发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/
我的问题是:有人遇到同样的问题吗?什么可以解决方案? 谢谢!
答案 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自动指定” - 即使我通过MyApp-Info.plist文件提供了我的app_id,它似乎没有自动指定(或者我做错了什么)。
因此,如果您遇到同样的问题,请尝试添加此@“app_id”键 - 这应该会有所帮助。