我正在尝试在iOS 6上测试Facebook的新内置共享“工作表”,但是当我运行示例代码时,它不会显示工作表。相反,它会为我发布一个状态,而不显示它将首先发布的内容。另外我还以为Facebook不允许你在用户嘴里放词?控制台打印此错误:HelloFacebookSample错误:HTTP状态代码:400
我有XCode 4.5和iOS模拟器6.0以及Facebook SDK 3.1
我正在关注此事: http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/
答案 0 :(得分:10)
您是否在设备/模拟器上设置了Facebook帐户(在“设置” - >“Facebook”下)?
仅当应用程序在ios 6上运行并且用户通过ios 6 Facebook帐户进行身份验证时,才会显示本机工作表对话框。否则,处理程序会报告该错误,presentShareDialogModallyFrom
返回“NO”。此外,处理程序中的FBNativeDialogResult result
将等于FBNativeDialogResultError
。
答案 1 :(得分:2)
您缺少一些必需的框架:
AdSupport.framework程式
Account.framework
Social.framework
BOOL displayedNativeDialog =
[FBNativeDialogs
presentShareDialogModallyFrom:self
initialText:self.shareText
image:nil
url:nil
handler:^(FBNativeDialogResult result, NSError *error) {
if (error) {
/* handle failure */
NSLog(@"error:%@, %@", error, [error localizedDescription]);
} else {
if (result == FBNativeDialogResultSucceeded) {
/* handle success */
NSLog(@"handle success");
} else {
/* handle user cancel */
NSLog(@"user cancel");
}
}
}];
if (!displayedNativeDialog) {
/* handle fallback to native dialog */
}
答案 2 :(得分:2)
确保您没有使用弃用方法打开会话(即.openActiveSessionWithPermissions而不是较新的openActiveSessionWithReadPermissions / openActiveSessionWithWritePermissions)或者facebook sdk将不使用本机facebook集成(即本机对话框)