如何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 。
祝你好运。