Наш сервер получает токен доступа пользователя из приложения Android.
Наш сервер выполнит 2 действия
- Убедитесь, что токен доступа пользователя аутентифицирован и действителен.
- Извлечение электронной почты пользователя из токена доступа пользователя
Наш код выглядит как
# https://developers.facebook.com/docs/facebook-login/access-tokens/#apptokens
access_token_link = 'https://graph.facebook.com/oauth/access_token?client_id=' + constants.FACEBOOK_APP_ID + '&client_secret=' + constants.FACEBOOK_APP_SECRET + '&grant_type=client_credentials'
access_token = requests.get(access_token_link).json()['access_token']
debug_token_link = 'https://graph.facebook.com/debug_token?input_token=' + access_token_from_user + '&access_token=' + access_token
'''
{
"data": {
"app_id": "000000000000000",
"type": "USER",
"application": "WeNote - Color Notes, To-do",
"data_access_expires_at": 1567078169,
"expires_at": 1564586876,
"is_valid": true,
"issued_at": 1559402876,
"scopes": [
"email",
"public_profile"
],
"user_id": "00000000000000000"
}
}
'''
response = requests.get(debug_token_link)
me_link = 'https://graph.facebook.com/me?fields=email&access_token=' + access_token_from_user
'''
{
"email": "yccheok@yahoo.com",
"id": "00000000000000000"
}
'''
response = requests.get(me_link)
Мне было интересно, является ли шаг 1 необходимым?Является ли он избыточным?
Это потому, что если мы можем выполнить шаг 2 (Извлечь электронную почту пользователя из токена доступа пользователя) успешно, значит ли это, что маркер доступа пользователя гарантированно будет аутентифицирован и действителен?