我正在使用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。否则它就没用了。
有什么想法吗?
答案 0 :(得分:0)
我最终使用了直接的FB-API调用([[FBSession activeSession] requestNewPublishPermissions])。
我的会话和身份验证令牌数据确实很奇怪,但至少会执行回调。绝对不是一个真正的解决方案,但它会做。