Что не так с моим синтаксисом авторизации? Получение 403 - ImgurAPI - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь получить ответ от Imgur API, но, несмотря на все мои усилия, я, кажется, неправильно передаю идентификатор клиента.

const key = `Client-ID ${process.env.REACT_APP_IMGURKEY}`;

fetch(url, {
    method: "GET",
    headers: new Headers({
        Authorization: key
    })
})

результат выборки - 403: недействительный идентификатор клиента, Я дважды проверил и подтвердил, что идентификатор клиента действителен.

1 Ответ

0 голосов
/ 28 января 2020

Вам необходимо получить токен доступа, чтобы иметь возможность отправлять запросы на "Authed" запросы в API Imgur.

Подробнее: https://apidocs.imgur.com/?version=latest#authorization -and-oauth

По сути, вам нужно перенаправить пользователя вашего приложения по этому адресу:

const YOUR_CLIENT_ID = process.env.REACT_APP_IMGURKEY;
const url = 'https://api.imgur.com/oauth2/authorize?client_id=' + YOUR_CLIENT_ID + ' &response_type=token'

Затем пользователь увидит страницу Imgur с просьбой дать разрешение вашему приложению. После того, как пользователь согласился дать разрешение, они возвращаются на URL-адрес, настроенный в настройках приложения, и токен доступа будет находиться в URL-адресе:

https://example.org/#access_token=ACCESS_TOKEN&expires_in=315360000&token_type=bearer&refresh_token=___&account_username=___&account_id=____

Затем вы можете отправлять запросы, передавая токен доступа. как это:

fetch(url, {
    method: "GET",
    headers: new Headers({
        Authorization: "Bearer " + ACCESS_TOKEN
    })
})
...