Facebook将令牌作为哈希而不是查询字符串的一部分返回

时间:2017-10-30 03:22:31

标签: php facebook facebook-graph-api facebook-oauth

我正在使用https://www.facebook.com/v2.10/dialog/oauth端点获取访问令牌,以便代表我的用户发布。

我正在尝试遵循本指南:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/

我的请求如下:https://www.facebook.com/v2.10/dialog/oauth?client_id=...&response_type=code%20token%20granted_scopes&redirect_uri= ...

我得到了以下回复:http://localhost:8000/?%2Fcallback&some=query#access_token=...&expires_in=6094

问题是为什么我将令牌和expire_in作为哈希(注意上面的#)而不是查询字符串的一部分,所以我可以通过PHP的$ _GET来捕获它?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

问题是为什么我将令牌和expire_in作为哈希(注意上面的#)而不是查询字符串的一部分,所以我可以通过PHP' s $ _GET来捕获它?我该如何解决这个问题?

参数response_type指定您返回的内容,请参阅https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#login

对于可能需要/ a令牌的客户端和服务器端应用,您可以选择是否要将code作为GET参数返回,哈希值为token,或两者兼而有之?两者,但在服务器端而不是通过API交换代码,而不是信任来自客户端的令牌发送。您还可以询问用户接受的授权范围 - 对于需要知道是否已授予某些基本权限的应用程序,可以节省额外的API请求。