3

我指的是 Facebook 的“ios 3.5 how to”。这是我的代码

[FBDialogs presentShareDialogWithParams:params
                        clientState:nil
                            handler:
 ^(FBAppCall *call, NSDictionary *results, NSError *error) {
 if(error) {
     // If there's an error show the relevant message
     [self showAlert:[self checkErrorMessage:error]];
 } else {
     // Check if cancel info is returned and log the event
     if (results[@"completionGesture"] &&
         [results[@"completionGesture"] isEqualToString:@"cancel"]) {
         NSLog(@"User canceled story publishing.");
     } else {
         // If the post went through show a success message
         [self showAlert:[self checkPostId:results]];
     }
 }

在结果中,我只得到值为 1 的 didComplete 键。我怎样才能得到 post_id?

4

5 回答 5

2

使用字典

call.dialogData.clientState
于 2015-12-09T11:31:16.933 回答
1

看看这本词典怎么样call.dialogData.clientState http://developers.facebook.com/docs/reference/ios/3.5/class/FBDialogsData

于 2013-06-05T10:11:28.357 回答
0

你已经检查过结果了NSDictionary吗?

放入NSLog(@"Results Dictionary: %@",results);第二个 else 语句并检查这本字典的内容。

于 2013-06-04T21:39:49.190 回答
0

只有当用户在您的应用上登录 Facebook 时,您才会获得返回的 post_id。也就是说,如果用户已经验证了您的应用程序。如果用户尚未对您的应用进行身份验证,则不会返回。

所以试着说一个 FBLoginView,登录,看看 post_id 是否被返回。

于 2013-06-07T01:18:21.740 回答
0

我注意到它只能在 ios5 上获得 didComplete,如果你在 ios6 上测试它,那么可以同时获得“didComplete”和“completionGesture”。这可能是 facebook SDK 的错误。

于 2013-07-18T06:22:32.077 回答