如何validationFacebook访问令牌?
只有服务器必须做的事情; 只要检查任何访问令牌的有效性。
客户端向服务器发送用户标识和由FB.getLoginStatus获取的访问令牌。
正如我所料,将有任何url,检查访问令牌的有效性,如
http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
返回是否可用。
或者有没有任何API(服务器端)?
官方支持的方法是:
GET graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app-token-or-admin-token}
有关更多信息,请参阅支票令牌文档 。
一个示例回应是:
{ "data": { "app_id": 138483919580948, "application": "Social Cafe", "expires_at": 1352419328, "is_valid": true, "issued_at": 1347235328, "metadata": { "sso": "iphone-safari" }, "scopes": [ "email", "publish_actions" ], "user_id": 1207059 } }
如果出现错误,您可以简单地请求https://graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxx ,令牌无效。 如果你得到一个带有id属性的JSON对象,那么它是有效的。
不幸的是,这只会告诉你,如果你的令牌是有效的,而不是如果它来自你的应用程序。
只是想让你知道,直到今天我第一次获得应用程序访问令牌(通过GET请求到Facebook),然后使用收到的令牌作为app-token-or-admin-token
:
GET graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app-token-or-admin-token}
不过,我刚刚意识到了这样做的更好方法(还有一个更less的GET请求):
GET graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app_id}|{app_secret}
如Facebook 在这里访问令牌文档中所述。
Mobile Number and Country Code
交换Access Token
(服务器端或客户端)
您可以通过此API
https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx获取您的;access_token
mobile number
。 也许,一旦你有mobile number
和id
,你可以使用它来validation用户与您的server & database
。
上面的xxxxxxxxxx
是Access Token
响应示例:
{ "id": "61940819992708", "phone": { "number": "+917382923912", "country_prefix": "91", "national_number": "7382923912" } }
Access Token
Exchange Auth Code
(服务器端)
如果您有Auth Code
,则可以先使用此API
获取Access Token
– https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzz
xxxxxxxxxx
, yyyyyyyyyy
和zzzzzzzzzz
分别是Auth Code
, App ID
和App Secret
。
示例响应
{ "id": "61940819992708", "access_token": "EMAWdcsi711meGS2qQpNk4XBTwUBIDtqYAKoZBbBZAEZCZAXyWVbqvKUyKgDZBniZBFwKVyoVGHXnquCcikBqc9ROF2qAxLRrqBYAvXknwND3dhHU0iLZCRwBNHNlyQZD", "token_refresh_interval_sec": 2592000 }
注意 – 这是server-side
首选,因为API
需要APP Secret
,由于security reasons
, API
APP Secret
并不意味着shared
。
祝你好运。