服务器只需要做一件事。只需检查任何访问令牌的有效性即可。
客户端将服务器ID和访问令牌发送给服务器FB.getLoginStatus
。如我所料,将有任何URL检查访问令牌的有效性,例如http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
。
那会返回它是否可用,或者是否有任何API(服务器端)?
服务器只需要做一件事。只需检查任何访问令牌的有效性即可。
客户端将服务器ID和访问令牌发送给服务器FB.getLoginStatus
。如我所料,将有任何URL检查访问令牌的有效性,例如http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
。
那会返回它是否可用,或者是否有任何API(服务器端)?
Answers:
官方支持的方法是:
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对象,则该对象有效。
不幸的是,这只会告诉您令牌是否有效,而不是令牌是否来自您的应用程序。
expires_at
信息。
只是想让您知道,直到今天,我首先获取一个应用程序访问令牌(通过对Facebook的GET请求),然后将接收到的令牌用作app-token-or-admin-token
in:
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的访问令牌文档此处所述。
可以从此URL找到应用程序令牌。
Access Token
的Mobile Number and Country Code
(服务器端或客户端)你可以得到mobile number
你access_token
这个API
https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx。也许,一旦有了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 API
: //graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzzzz
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
。祝好运。