我有一个与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生成新的会话密钥,即使已经存在(在我的情况下是临时会话密钥)?