Я пытаюсь использовать эти инструкции (https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps) для получения access_token во время установки приложения GitHub.
Приложение запрашивает разрешение пользователя «Электронная почта».
В приложении установлено «Запросить авторизацию пользователя (OAuth) во время установки».
Я устанавливаю приложение и перенаправляюсь GitHub на мой «URL обратного вызова авторизации пользователя». При обслуживании этой страницы я извлекаю параметр code
, который является параметром строки запроса URL-адреса.
Я следую инструкциям на приведенной выше странице, чтобы выполнить пост-запрос, используя библиотеку javascript request
(я попробовал альтернативы, но больше не повезло).
const res = request.post({
url: 'https://github.com/login/oauth/access_token',
headers: {
'Accept': 'application/vnd.github.machine-man-preview+json'
},
json: true,
body: {
client_id: process.env.GITHUB_APP_IDENTIFIER,
client_secret: process.env.GITHUB_WEBHOOK_SECRET,
code: code,
redirect_uri: process.env.GITHUB_CALLBACK_URL
}
});
Я также пробовал:
- Форма кодирования
- Параметры строки запроса
- Не указывать redirect_uri (Является ли причиной того, что это не является обязательным, то, что для параметра «Запросить авторизацию пользователя (OAuth) во время установки») значение true, это не применяется?)
- Не указывать специальный заголовок
Я также трижды проверил правильность переменных окружения.
Независимо от того, что я делаю, я получаю 404 вместо токена доступа.