[facebook] Facebook 액세스 토큰을 확인하는 방법은 무엇입니까?

서버가해야 할 일이 있습니다. 액세스 토큰의 유효성을 확인하십시오.

클라이언트는 서버 사용자 ID와에서 얻은 액세스 토큰을 보냅니다 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 개체를 가져 오면 유효한 것입니다.

불행히도 이것은 당신의 토큰이 당신의 앱에서 나온 것이 아니라 유효한지 여부 만 알려줄 것입니다.


답변

오늘까지 먼저 앱 액세스 토큰 (Facebook에 대한 GET 요청을 통해)을 얻은 다음 수신 된 토큰을 다음과 같이 사용했음을 알려 드리고자합니다 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의 문서에 설명되어 있습니다 .


답변

간단히 요청 (HTTP GET) :

https://graph.facebook.com/USER_ID/access_token=xxxxxxxxxxxxxxxxx

그게 다야.


답변

이 URL에서 앱 토큰을 찾을 수 있습니다.

https://developers.facebook.com/tools/accesstoken


답변

교환 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이와 APIhttps://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzz을

xxxxxxxxxx, yyyyyyyyyyzzzzzzzzzz상기있다 Auth Code, App ID그리고 App Secret각각.

예제 응답

{
   "id": "619XX819992708",
   "access_token": "EMAWdcsi711meGS2qQpNk4XBTwUBIDtqYAKoZBbBZAEZCZAXyWVbqvKUyKgDZBniZBFwKVyoVGHXnquCcikBqc9ROF2qAxLRrqBYAvXknwND3dhHU0iLZCRwBNHNlyQZD",
   "token_refresh_interval_sec": XX92000
}

주 -이은에 선호 server-side(가)부터 API요구 APP Secret될 운명되지 않은 shared위해를 security reasons.

행운을 빕니다.


답변