Я пытаюсь аутентифицировать пользователя в своем приложении через его логин Twitch. Я не могу понять request.post()
правильно (используя запрос-обещание). Я пробовал много разных вариантов и обычно получаю «Необработанный отказ» в журналах сервера. Руководство по Twitch API для этого находится здесь< /а>. Ответ POST должен быть в формате JSON. Вот моя последняя версия:
const twitchATParams =
'?client_id=' + twitchAppClientId +
'&client_secret=' + twitchClientSecret +
'&code=' + code +
'&grant_type=authorization_code' +
'&redirect_uri=' + twitchAppRedirect;
request.post(twitchATRequestUrl + twitchATParams)
.then((accessTokenResponse) => {
const accessToken = accessTokenResponse.access_token;
console.log('Got an access token: ' + accessToken);
res.status(200).send('Got an access token: ' + accessToken);
})
.catch((error) => {
res.status(error.statusCode).send(error.error.error_description);
});
Я также пробовал это:
request.post({
url: twitchATRequestUrl,
form: { client_id: twitchAppClientId,
client_secret: twitchClientSecret,
code: code,
grant_type: "authorization_code",
redirect_uri: twitchAppRedirect}
}, function(error, accessTokenResponse, body){
const accessToken = accessTokenResponse.access_token;
console.log('Got an access token: ' + accessToken);
res.status(200).send('Got an access token: ' + accessToken);
});
Это то, что мне нужно сделать в Twitch API Guide, я думаю, что у меня проблемы с переводом этого на JavaScript:
POST https://id.twitch.tv/oauth2/token
?client_id=<your client ID>
&client_secret=<your client secret>
&code=<authorization code received above>
&grant_type=authorization_code
&redirect_uri=<your registered redirect URI>
ОБНОВЛЕНИЕ: приложение размещено в Firebase с использованием облачных функций. Может быть, это влияет на мой запрос?
ОБНОВЛЕНИЕ 2: Согласно этому: Развернутая функция Firebase не может выполнить HTTP GET для внешнего API? Я могу выполнять запросы внешнего API только в рамках платного плана Firebase. Я предполагаю, что это моя проблема. Я перейду на план с оплатой по мере использования (который на самом деле предоставляет много данных бесплатно), попробую еще раз и опубликую свои результаты здесь.
node-fetch
попробовать. за последние 8 лет запрос не смог достаточно надежно стабилизироваться, чтобы я мог его даже рассматривать. постоянно что-то ломает. - person GottZ   schedule 13.10.2018