gpt4 book ai didi

ios - FBSession requestNewPublishPermissions 在响应之前失败

转载 作者:可可西里 更新时间:2023-11-01 03:35:53 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com