Reddit дает 403 при голосовании через API - PullRequest
0 голосов
/ 25 октября 2018

Я зарегистрировался как Web app в соответствии с требованиями Reddit API для доступа Oauth с identity, edit, flair, history, modconfig, modflair, modlog, modposts, modwiki, mysubreddits, privatemessages, read, report, save, submit, subscribe, vote, wikiedit, wikiread областями действия.

Я авторизовал свое приложение и обменялсгенерированный код для access_token со сроком действия 3600 секунд.

'use strict';

let request = require('request');
const USER_AGENT = 'web:com.example.server:v0.0.1 (by /u/sridharrajs)';
const token = '<my access_token within 3600 seconds validity>';

request({
  method: 'POST',
  url: 'https://www.reddit.com/api/vote',
  headers: {
    'User-Agent': USER_AGENT,
    'Authorization': `bearer ${token}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  form: {
    id: "t1_9qy47p",
    dir: "1"
  },
  json: false
}, function (error, response, body) {
  if (error) {
    console.log('error', error);
  } else if (body.error) {
    console.log('body.error', body);
  }
  return console.log(body);
});

Но когда я пытаюсь повысить передачу Reddit с использованием API , я получаю ошибку.

{"message": "Запрещено", "ошибка": 403}

Ссылка, которую я пытаюсь поднять, - Тим Кук предупреждает о 'data-industrialсложный подход к всеобъемлющим законам США о конфиденциальности

Я пытался переключить bearer и Bearer согласно ответу в Reddit API возвращает HTTP 403 , и пытался использовать разныеUser-Agent как указано в 403 ошибка при попытке получить данные из Reddit API .Кажется, ничего не работает.

Чего мне не хватает?

1 Ответ

0 голосов
/ 25 октября 2018

решаемая.Мне нужно использовать https://oauth.reddit.com вместо www.reddit.com.

Теперь вы можете отправлять запросы API на серверы Reddit от имени этого пользователя, включив в свои HTTP-запросы следующий заголовок:

Authorization: bearer TOKEN

Запросы API с токеном-носителем следует отправлять на https://oauth.reddit.com, НЕ www.reddit.com.

...