我已按照Reddit API的要求注册为Web app
,用于具有identity, edit, flair, history, modconfig, modflair, modlog, modposts, modwiki, mysubreddits, privatemessages, read, report, save, submit, subscribe, vote, wikiedit, wikiread
范围的Oauth访问。
我已授权我的应用,并已将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);
});
但是当我尝试upvote a reddit submission using API时,我得到了一个错误。
{“消息”:“禁止”,“错误”:403}
我要投票的链接是Tim Cook warns of ‘data-industrial complex’ in call for comprehensive US privacy laws
我尝试按照Reddit API returns HTTP 403中的答案同时切换bearer
和Bearer
,并尝试使用403 error when trying to get data from Reddit API中建议的其他User-Agent
。似乎没有任何作用。
我想念什么?
答案 0 :(得分:0)
已解决。我需要使用https://oauth.reddit.com
而不是www.reddit.com.
您现在可以代表该用户向Reddit服务器发出API请求,方法是在HTTP请求中包含以下标头:
具有承载令牌的Authorization: bearer TOKEN
API请求应发送至https://oauth.reddit.com,而不是www.reddit.com。