【发布时间】:2014-01-09 09:32:52
【问题描述】:
我正在尝试使用 reddit api 通过使用 node.js 和 request.js 的机器人登录。我设法弄清楚我需要从 /api/login 请求返回的 modhash 和会话 cookie。我已经使用以下代码访问了两者:
request.post({
uri: 'http://www.reddit.com/api/login',
json: true,
headers: agentheader,
qs : logincreds
},function(err,response,body){
if(err){
throw err;
} else {
if(response.statusCode == 200){
mhash = body.json.data.modhash;
session_cookie = body.json.data.cookie;
console.log(body.json.data.cookie);
console.log("login OK, modhash: "+mhash);
console.log("Session cookie: "+session_cookie);
agentheader = {
'user-agent': 'base10bot made by /u/01011110',
'X-Modhash' : mhash,
'Cookie' : 'reddit_session='+session_cookie
};
...
在最后一点中,我使用 modhash 和 cookie 设置自定义标头,就像 /r/redditdev 上的某个人告诉我的那样。如果没有“reddit_session=”部分,会话 cookie 根本不起作用,但我所做的一切都会返回 403 禁止。
我很确定“cookie”的格式是错误的,因为当我记录它时,它显示为一个数字 id、一个时间戳和一个以逗号分隔的哈希值。有人可以帮我找出发送此 cookie 标头的正确方法吗?我在 google 上找到的所有东西要么使用 python 请求,要么使用 bash。
【问题讨论】:
-
尝试从您的用户代理中删除“bot”。我记得过去有过这样的问题。
标签: node.js api login request reddit