解析:[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 无效