我正在尝试从使用 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 之前,该块被调用并返回此错误消息
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。
这发生在模拟器和设备上。
知道可能是什么原因造成的吗?