2017-04-02 130 views
3

在我的应用程序中,我将照片发送到我的后端代码。我也想将这张照片发布到用户的Facebook墙上。用户已经用FB帐户登录到我的应用程序,但我还没有请求他的publish_actions权限。如何从我的Swift应用程序请求Facebook 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

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

+0

我有同样的问题,你有没有找到解决办法? – Mina

+0

任何解决方案?为他人分享 – Ima

回答

0

某些脸谱特征需要你发送你的应用程序供Facebook审阅,然后才能使用。在您发送Facebook应用程序进行审阅之前,您正试图通过自己的Facebook帐户获得“publish_actions”权限。在开发模式下,从developers.facebook.com创建一个测试帐户来测试这些功能。