При отправке запроса в Google My Business API в моем приложении Node.js я получаю сообщение об ошибке, не прошедшую проверку подлинности. Ответ:
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
Для чего бы то ни было, я использую клиент запрос-обещание, чтобы сделать запрос. Моя функция ниже. Я только что получил токен доступа, так что я вполне уверен, что это хорошо, и я могу видеть его через журнал err.options.Authorization. Я знаю, что идентификатор местоположения еще не существует, но я не думаю, что именно об этом говорит мне ошибка.
const request = require('request-promise');
...
function checkLocation (loc) {
return request({
method: 'GET',
uri: `https://mybusiness.googleapis.com/v4/accounts/${ACCOUNT_ID}/locations/${loc._id}`,
Authorization: `OAuth ${ACCESS_TOKEN}`
})
.then(function (response) {
console.log(response);
})
.catch(function (err) {
console.error(err.error, err.options.Authorization);
});
}
Мой запрос отформатирован неправильно или я не отправляю все, что мне нужно?
Обновление: Я пропустил, возможно, важную информацию о том, что это происходит через процесс одноразовой авторизации для серверных приложений, как описано здесь: https://developers.google.com/identity/protocols/OAuth2. Моя проблема заключена в предложении о на этой странице: «После того, как приложение получает токен доступа, оно отправляет токен в Google API в заголовке авторизации HTTP».