解析:[PFFacebookUtils reauthorizeUser:]回调永远不会被调用

时间:2014-10-07 16:07:43

标签: ios objective-c facebook parse-platform

我正在使用Parse框架进行社交身份验证。我的应用程序有一个非常简单的方法,可以在Facebook上请求发布权限。

我的问题:我传入reauthorizeUser的块:永远不会被调用!

+(void)acquirePublishPermissionsForUser:(DHUser *)user WithCompletion:(void (^) (BOOL succeeded, NSError *error))completion
{
    [PFFacebookUtils reauthorizeUser:user
              withPublishPermissions:@[@"publish_actions"]
                            audience:FBSessionDefaultAudienceFriends
                               block:^(BOOL succeeded, NSError *error) {
                                   completion(succeeded, error);
                               }];
}

此方法正常。在这种情况下,Facebook应用程序打开并提示许可。点击OK后,您将返回我的应用程序。 openURL& applicationDidBecomeActive被调用。

这是我的app委托:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // Handle Facebook authentication
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                        withSession:[PFFacebookUtils session]];
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Handle Facebook Authentication
    [FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]];
}

我设置了一个断点来验证:我的块永远不会被执行。这非常重要,因为我想在获得许可后发布到Facebook。否则它就没用了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了直接的FB-API调用([[FBSession activeSession] requestNewPublishPermissions])。

我的会话和身份验证令牌数据确实很奇怪,但至少会执行回调。绝对不是一个真正的解决方案,但它会做。