服务器必须做的事情;只需检查任何访问令牌的有效性。
客户端向服务器发送FB.getLoginStatus获取的用户ID和访问令牌。
正如我所料,会有任何网址检查访问令牌的有效性,例如
http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
返回是否可用。
或者是否有任何API(服务器端)?
答案 0 :(得分:122)
官方支持的方法是:
GET graph.facebook.com/debug_token?
input_token={token-to-inspect}
&access_token={app-token-or-admin-token}
有关详细信息,请参阅the check token docs。
示例回复是:
{
"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
}
}
答案 1 :(得分:70)
如果收到错误,您可以简单地请求https://graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxx,令牌无效。如果你得到一个带有id属性的JSON对象,那么它就是有效的。
不幸的是,这只会告诉您令牌是否有效,而不是来自您的应用。
答案 2 :(得分:23)
只是想让你知道,直到今天我才第一次获得应用访问令牌(通过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}
但是,我刚刚意识到了一种更好的方法(除了需要少一个GET请求的额外好处):
GET graph.facebook.com/debug_token?
input_token={token-to-inspect}
&access_token={app_id}|{app_secret}
如Facebook的Access Tokens here文档中所述。
答案 3 :(得分:1)
Access Token
(服务器端或客户端)Mobile Number and Country Code
您可以使用此mobile number
https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx获取access_token
API
。也许,一旦您拥有mobile number
和id
,您就可以使用server & database
验证用户。
xxxxxxxxxx
是Access Token
{
"id": "61940819992708",
"phone": {
"number": "+91XX82923912",
"country_prefix": "91",
"national_number": "XX82923912"
}
}
<小时/>
Auth Code
(服务器端)Access Token
如果您有Auth Code
,则可以先使用Access Token
- https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzz
API
上面的 xxxxxxxxxx
,yyyyyyyyyy
和zzzzzzzzzz
分别是Auth Code
,App ID
和App Secret
。
{
"id": "619XX819992708",
"access_token": "EMAWdcsi711meGS2qQpNk4XBTwUBIDtqYAKoZBbBZAEZCZAXyWVbqvKUyKgDZBniZBFwKVyoVGHXnquCcikBqc9ROF2qAxLRrqBYAvXknwND3dhHU0iLZCRwBNHNlyQZD",
"token_refresh_interval_sec": XX92000
}
server-side
的首选,因为API
要求APP Secret
shared
不是security reasons
。祝你好运。
答案 4 :(得分:1)
仅请求(HTTP GET):
https://graph.facebook.com/USER_ID/access_token=xxxxxxxxxxxxxxxxx
就是这样。
答案 5 :(得分:0)
可以从此URL中找到应用程序令牌。