Я пытаюсь получить детали профиля пользователя в узле.Получить google + профиль пользователя в узле, используя только токен доступа
Поток таков, что у меня есть мобильное приложение, которое генерирует токен для меня (путем аутентификации через Google плюс собственный SDK), затем я отправляю токен на свой сервер узлов, и я хочу получить информацию о пользователе от Google. Я попробовал следующее (при условии, у меня есть access_token
от клиента):
var request = require('request');
request('https://www.googleapis.com/oauth2/v2/userinfo?access_token=' + access_token, function(err, res, body) {
if (err) return callback(err);
if (res.statusCode != 200) {
return callback(new Error('Invalid access token: ' + body));
}
else {
var me;
try { me = JSON.parse(body);}
catch (e) {
return callback(new Error('Unable to parse user data: ' + e.toString()));
}
console.log('user profile:', me);
}
});
Это работает, но иногда я получаю плохую реакцию как нулевая displayName
поле нулевой email
(хотя у меня есть объем), и это ненадежно в целом ,
Я попытался использовать Google API Node module, но поток там предполагает, что мне нужно получить токен и излишне сложно.
Кроме этого, я не понимаю разницы между версиями API Google и не знаю, когда им пользоваться.
EDIT
кажется, что проблема с нулевым displayName
поле происходит только с жетонами, которые были созданы с помощью IOS SDK. Токены, созданные с помощью Android SDK, прекрасны, и вызов API с ними разрешается в displayName
. Я попытался с КСН маркер и вызвав следующий API:
https://www.googleapis.com/plus/v1/people/me?access_token=...
я получил displayName
в результате, но после нескольких звонков с моего сервера я получил
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}