Как проверить токен доступа к 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

Это.