如何从我的Swift应用程序请求Facebook publish_actions权限?

时间:2017-04-02 10:28:43

标签: ios swift facebook facebook-graph-api

在我的应用程序中,我将照片发送到我的后端代码。我还想将这张照片发布到用户的Facebook墙上。用户已使用FB帐户登录我的应用程序,但我尚未请求publish_actions权限。

在我的应用程序中,用户有一个UISwitch - 当打开时 - 应检查用户是否授予publish_actions权限,如果他还没有 - 请求用户提供。

到目前为止,这是我的代码:

if !(FBSDKAccessToken.current().hasGranted("publish_actions")) {

    print("Request publish_actions permissions")
    let login: FBSDKLoginManager = FBSDKLoginManager()

    login.logIn(withPublishPermissions: ["publish_actions"], from: self) { (result, error) in
        if (error != nil) {
            print(error!)
        } else if (result?.isCancelled)! {
            print("Canceled")
        } else if (result?.grantedPermissions.contains("publish_actions"))! {
            print("permissions granted")

        }
    }
}else {

}

问题在于,当用户点击UISwitch时,会立即打开Safari,询问他是否登录Facebook。当他再次登录时,会显示一条消息“您已经授权<>”。当用户点击OK时,他会返回应用,然后在控制台中看到Canceled

这对我来说似乎不对,所以我的问题是 - 请求用户允许此权限的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

某些Facebook功能需要您发送您的应用以供Facebook审核才能使用。你正试图获得" publish_actions"在您发送Facebook应用程序进行审核之前,请使用您自己的Facebook帐户进行许可。在开发模式下,从developers.facebook.com创建一个测试帐户来测试这些功能。