ios - FBSession requestNewPublishPermissions 在响应之前失败

标签 ios facebook facebook-graph-api facebook-ios-sdk

我正在尝试使用 iOS 上的 Facebook SDK 从用户那里获得发帖权限。

我在一个方法中调用下面的代码,如果应用程序没有发布到用户 facebook 墙上所需的发布权限,则会调用该方法。

    // No permissions found in session, ask for it
    [FBSession.activeSession requestNewPublishPermissions: [NSArray arrayWithObject:@"publish_actions"]
                                          defaultAudience: FBSessionDefaultAudienceEveryone
                                        completionHandler: ^(FBSession *session, NSError *error)
     {
         if( !error )
         {
          // Do something
         }
     }];

我第一次调用此代码时,它会将用户带到权限页面,甚至在它切换到设备上的 safari 之前,该 block 就会被调用并返回此错误消息

Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" UserInfo=0xc426410 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorReauthorizeFailedReasonUserCancelled,

然后应用程序继续在 safari 中显示权限页面,用户在其中选择确定。然后它返回到应用程序。即使向用户显示了权限页面并接受了权限,此时也未设置权限。

当尝试第二次发布时,它会将用户带到 safari 中的权限页面,并且 requestNewPublishPermissions 方法不会立即失败。用户选择确定,然后一切都按预期进行。

所以只有在第一次调用 requestNewPublishPermissions 时,它才会立即返回错误 ErrorReauthorizeFailedReasonUserCancelled。

这发生在模拟器和设备上。

知道是什么原因造成的吗?

最佳答案

我在这个问题的答案Facebook iOS 3.1 sdk login with publish permission callbacks上找到了这个问题的解决方案

 dispatch_async(dispatch_get_current_queue(), ^{
     [self openSessionForPublishPermissions];
 });

其中 opensessionforpublishpermissions 是包含 requestNewPublishPermissions 方法的方法。

“原因是调用 reauthorize.. 需要在调用 openActiveSession.. 的事件循环之后。”

我认为这是 Facebook SDK 中的一个错误,将其视为正常行为是没有意义的,而且我还没有看到任何 Facebook 文档评论这是预期的行为。

关于ios - FBSession requestNewPublishPermissions 在响应之前失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16959938/

相关文章:

spring-boot - 尝试访问节点类型(用户)上不存在的字段(上下文)

iphone - 如何在 iOS 上每次打开唯一文件夹中的解压缩文件

ios - UITableView 的一部分不响应触摸/任何事件

javascript - 如何使用JavaScript SDK获取Facebook用户的好友信息

node.js - 如何在selenium nodejs中无论光标在哪里发送Keys

ios - iOS 中的新闻提要检索

facebook-graph-api - 如何使用Flask从FB检索人的头像?

ios - 对象在 iOS 的 Open Graph 共享对话框中消失

ios - HKAnchoredObjectQuery 可以在 HealthKit 中查询已删除的 HKSampleType 吗?

facebook - 在 Facebook 中向好友收件箱发送消息