2017-04-02 113 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創建一個測試帳戶來測試這些功能。

相關問題