Следуя документации здесь: https://github.com/reddit-archive/reddit/wiki/oauth2, Мне не удалось получить токен доступа, и я не могу понять, почему.
Я получаю следующий 401 (неавторизованный) ответ на мой запрос POST:
{
"headers": {
"normalizedNames": {},
"lazyUpdate": null
}
,
"status":401,
"statusText":"Unauthorized",
"url":"https://www.reddit.com/api/v1/access_token",
"ok":false,
"name":"HttpErrorResponse",
"message":"Http failure response for https://www.reddit.com/api/v1/access_token: 401 Unauthorized",
"error": {
"message": "Unauthorized", "error": 401
}
}
Я дважды проверил, что мой clientId, clientSecret, redirect_uri и код - это все, чем они должны быть. Я также проверил, что функция btoa
генерирует то, что я ожидаю. Я попытался использовать заголовок без ключей «User-Agent» и «Content-Type», и он не работает с или без.
Вот что я делаю:
getAccessToken() {
const httpOptions = {
headers: new HttpHeaders({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0',
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + btoa(myClientId + ':' + myClientSecret)
})
}
const postData = {
grant_type: 'authorization_code',
code: myCode,
redirect_uri: 'http://localhost:4200',
};
return this.http.post('https://www.reddit.com/api/v1/access_token', postData, httpOptions )
}
Любая помощь очень ценится, я застрял на этом слишком долго.