我正在使用iOS SDK 3.1.1并试图同时获得读取和发布权限。 正如教程所说,我正在调用FBSession openActiveSessionWithReadPermissions并在其处理程序 - 处理程序A中调用[[FBSession activeSession] reauthorizeWithPublishPermissions仅在调用处理程序A时使用FBSessionStateOpen的会话状态。
当我在iOS 6的设置中设置了facebook帐户时,reauthorizeWithPublishPermissions的处理程序 - 处理程序B - 被正常调用,错误参数为nil。
但是,如果我在iOS 6的设置中没有设置facebook帐户,则当应用程序切换到Safari以获得发布权限时,将使用名为“ErrorReauthorizeFailedReasonUserCancelled”的reauth错误调用处理程序B.
更奇怪的是这个。在调用处理程序B之前的两种情况下,调用处理程序A时会话状态为FBSessionStateOpenTokenExtended。
这些新SDK的正常或预期行为?如果是这样,我应该不检查处理程序B中的错误是否为n?
答案 0 :(得分:0)
dispatch_async
中的reauthorizeWithPublishPermissions:
dispatch_async(dispatch_get_current_queue(), ^{
[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceEveryone
completionHandler:^(FBSession *session, NSError *error) {
// handle the flow here
}];
});