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

Posted

技术标签:

【中文标题】解析:[PFFacebookUtils reauthorizeUser:] 回调永远不会被调用【英文标题】:Parse: [PFFacebookUtils reauthorizeUser:] callback never gets called 【发布时间】:2014-10-07 16:07:43 【问题描述】:

我正在使用 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 应用程序会打开并提示许可。点击确定后,您将返回我的应用程序。 openURL 和 applicationDidBecomeActive 都会被调用。

这是在我的应用委托中:

- (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】:

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

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

【讨论】:

以上是关于解析:[PFFacebookUtils reauthorizeUser:] 回调永远不会被调用的主要内容,如果未能解决你的问题,请参考以下文章

从 PFFacebookUtils 中检索 Facebook 的用户 ID

PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 给出编译错误

FBSDKLoginManager 有效,PFFacebookUtils logInInBackgroundWithReadPermissions 无效

没有这样的模块'PFFacebookUtils'

PFFacebookUtils。如何区分登录和注册?

PFFacebookUtils.logInInBackground 不执行 segue