Я пытаюсь получить токен доступа. Мне удалось заставить пользователя авторизовать мое приложение, теперь я пытаюсь получить токен доступа. Вот документация reddit oauth2: https://github.com/reddit-archive/reddit/wiki/oauth2, а вот почтовый запрос HTTPoison, который я использую: https://hexdocs.pm/httpoison/HTTPoison.html#post/4
Я понятия не имею, как сделать почтовый запрос, должен ли client_id быть в теле или в заголовке и т. Д.
def get_oauth_token(token, state) do
# TODO: compare state with old state to prevent malicious users
cfg = config()
url = 'https://www.reddit.com/api/v1/access_token'
body = %{
grant_type: "authorization_code",
code: token,
redirect_uri: cfg[:redirect_uri],
client_id: cfg[:client_id],
client_secret: cfg[:client_secret]
}
|> Jason.encode()
|> ok()
HTTPoison.post(url, body, [
{"Accept", "application/json"},
{"Content-Type", "application/x-www-form-urlencoded"},
])
end
defp ok({:ok, response}), do: response
Я получаю код статуса 401
ожидаемый результат
{
"access_token": Your access token,
"token_type": "bearer",
"expires_in": Unix Epoch Seconds,
"scope": A scope string,
"refresh_token": Your refresh token
}