【发布时间】:2014-03-06 07:47:41
【问题描述】:
所以我正在为一位 Redditor 同事构建一个非常愚蠢的机器人。它需要登录,然后发表评论。 Reddit 文档相当稀疏,恕我直言,所以我希望有人能告诉我哪里出错了。
据我了解,我需要发布到 https://ssl.reddit.com/api/login,检索一个 cookie,然后将该 cookie 连同提供的 modhash 一起发送到 https://api.reddit.com/api/comment。但是当我按照这些步骤操作时,我不断收到403 statusCode。我确定我错过了一些愚蠢的东西,但我似乎无法说出它是什么。
相关代码:
var request = require('request')
, modhash;
request.defaults({jar:true});
function login () {
var options = {
url : 'https://ssl.reddit.com/api/login?api_type=json&user=USERNAME&passwd=PASSWORD&rem=true',
headers : {
'User-Agent' : 'fooBot/0.1 by USERNAME'
},
method : 'POST'
};
request(options, function (err, res, body) {
if (err) {
console.log(err.json.errors);
return;
} else {
var parsedBody = JSON.parse(body);
modhash = body.json.data.modhash;
}
});
}
function postComment () {
var parentId = 't1_cf9k3wa'
, options = {
url : 'https://api.reddit.com/api/comment?api_type=json&text=foobar&thing_id=' + parentId,
headers : {
'User-Agent' : 'fooBot/0.1 by USERNAME',
'X-Modhash' : modhash
},
methods : 'POST'
};
request(options, function (err, res, body) {
if (err) {
console.log(err);
return;
} else {
// this blows up
}
});
}
【问题讨论】:
-
你发现了吗?
-
您的
postComment();方法有methods: 'POST',它应该是method: 'POST'(即method不是methods)。 -
是的。我解决了这个问题和其他一些问题。我将继续添加回复。
标签: node.js api request comments reddit