我有一個與Facebook連接一起使用的移動應用程序。在用戶授予擴展權限後,我無法獲得offline_access會話密鑰。在Facebook offline_access權限後獲取新的會話密鑰
這裏的用戶流量:
- 用戶進入我的網站首次
- 我送他們到m.facebook.com/tos.php?並通過我的API密鑰和密碼
- 在用戶登錄使用Facebook Connect
- 的Facebook它們返回到一個頁面在我的網站,mysite的/登錄-success.php在查詢字符串中的auth_token
- 在mysite的/ login-success.php我實例化FB api客戶端,並檢查我是否已經擁有offline_access會話密鑰:
$facebook = new Facebook($appapikey, $appsecret);
- 如果他們還沒有提供offline_access FB給我一個臨時會話密鑰,我需要從用戶獲得offline_access權限,所以我轉發他們到www.facebook.com/connect/prompt_permissions.php?並在查詢字符串中傳遞offline_access。
- 用戶授權offline_access並獲得轉發到mysite的/權限,success.php
我遇到的問題是,在實例上的API客戶端後,權限,success.php會話密鑰我仍然臨時會話密鑰,而不是新的offline_access會話密鑰。
我發現獲得offline_access密鑰的唯一方法是刪除用戶的所有cookie,然後讓他們再次使用Facebook連接登錄。相當差的用戶體驗。
任何人都可以闡明如何使用Facebook API生成新的會話密鑰,即使已經存在(在我的情況下是臨時會話密鑰)?