Reddit API / api / мне не удается заставить его работать - PullRequest
0 голосов
/ 12 июля 2020

Мне удалось заставить Reddit OAuth работать, и он перенаправляется на мою домашнюю страницу. И я получаю URL-адрес типа http://localhost:3000/?state=XEA12&code=6p4pAyle2EWGVwIBlFJ6ERXjxKg

Теперь, когда я пробую другие API, например /api/me. Я не могу заставить его работать. Я также установил для своего приложения идентификацию.

Вот фрагмент кода, который я написал:

import axios from "axios";
import useSWR from "swr";

const link = "https://www.reddit.com/api/v1/me";

const config = {
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
    Authorization: "bearer 6p4pAyle2EWGVwIBlFJ6ERXjxKg",
  },
};

const fetcher = (url) => axios.get(url, config).then((res) => res);

export default function Home() {
  const { data, error } = useSWR(link, fetcher);
  if (error) return <div>failed to load </div>;
  if (!data) return <div>loading...</div>;
  return <div>{JSON.stringify(data)}</div>;
}

Подскажите, пожалуйста, что я делаю не так? Это из-за заголовков или мне нужно передать что-то еще?

1 Ответ

1 голос
/ 12 июля 2020

Согласно документации, вам нужно сначала получить access_token, используя code param. Вот как это сделать: https://github.com/reddit-archive/reddit/wiki/OAuth2#retrieving -the-access-token

Затем вы можете использовать этот access_token в аутентификации на предъявителя. Есть еще одно примечание: Запросы API с токеном-носителем должны выполняться на https://oauth.reddit.com, НЕ www.reddit.com. Надеюсь, это поможет

...