Как проверить токен доступа к facebook?
есть только то, что должен делать сервер; просто проверьте доступность токена доступа.
клиенты отправляют на идентификатор пользователя сервера и токен доступа, полученный FB.getLoginStatus.
Как я и ожидал, будет какой-либо URL-адрес, который проверяет действительность токена доступа, например
http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
который возвращает, доступен ли он или нет.
или есть ли для этого API (серверная сторона)?
Ответы
Ответ 1
Официально поддерживаемый метод для этого:
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
}
}
Ответ 2
Вы можете просто запросить https://graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxx, если вы получили сообщение об ошибке, токен недействителен. Если вы получаете объект JSON с свойством id, то он действителен.
К сожалению, это только скажет вам, действительно ли ваш токен, а не если он пришел из вашего приложения.
Ответ 3
Просто хотел сообщить, что до сегодняшнего дня я впервые получил токен доступа к приложениям (через 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}
Как описано в документации для токенов токена здесь.
Ответ 4
Ток Exchange 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"
}
}
Exchange Auth Code
для Access Token
(на стороне сервера)
Если вместо этого вы используете Auth Code
, вы можете сначала получить Access Token
с помощью этого API
- https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyyzzzzzzzzzzz
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
.
Удачи.
Ответ 5
Просто запросите (HTTP GET):
https://graph.facebook.com/USER_ID/access_token=xxxxxxxxxxxxxxxxx
Это.
Ответ 6
Маркер приложения можно найти на этом URL-адресе.
https://developers.facebook.com/tools/accesstoken