FBSDKLoginManager logInWithPublishPermissions始终返回isCancelled = YES

dev*_*os1 26 facebook ios facebook-ios-sdk

我无法弄清楚如何将用户登录到我的应用程序.[FBSDKAccessToken currentAccessToken]是零,所以我打电话给:

[[[FBSDKLoginManager alloc] init] logInWithPublishPermissions:@[@"publish_actions"] handler:…];
Run Code Online (Sandbox Code Playgroud)

根据所包含的示例项目.这会切换到Facebook应用程序,但消息显示"您已经授权了App Name.".我单击确定然后它返回到应用程序,但是grantedPermissions并且declinedPermissionsnil在结果上,并且isCancelledYES.[FBSDKAccessToken currentAccessToken]还在nil.

我无法弄清楚我应该如何currentAccessToken填补.在我看来logInWithPublishPermissions应该这样做,但事实并非如此.

Dhe*_*ngh 50

您应该尝试在AppDelegate中添加didFinishLaunchingWithOptions:

return [[FBSDKApplicationDelegate sharedInstance] application:application
                                    didFinishLaunchingWithOptions:launchOptions];
Run Code Online (Sandbox Code Playgroud)

[FBSDKAccessToken currentAccessToken]当用户登录时,这将得到你.

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)

如果此方法不存在于AppDelegate中,则会导致取消状态.

请参阅:https://developers.facebook.com/docs/ios/getting-started#startcoding

  • 我已经完成了这两件事,但仍然得到 result.cancelled = true (2认同)

Kof*_*Kof 29

当您的Facebook应用程序没有"publish_actions"权限,或者您没有使用测试用户时,就会发生这种情况.

在Facebook上,去管理您的应用程序,然后确保您正在使用的Facebook用户在"角色"下定义为管理员或测试人员.

如果它不是测试用户或管理员 - 在允许您的应用程序使用之前,Facebook将要求审核和批准"publish_actions"权限,在此之前您将收到"isCancelled = YES"结果.

在使用此权限测试您的应用后,可以提交此权限以供审核,您需要上传一个二进制文件,该二进制文件演示了此权限的使用情况以及有关如何使用它的确切详细信息.批准后,您将能够与非测试Facebook用户一起使用.

  • 哇,这是解决方案.这么多时间来理解为什么我总是得到iscancelled = YES ...很多,谢谢Kof. (2认同)