我正在尝试使用reddit api使用node.js和request.js登录bot。我已经设法弄清楚我需要从/ 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标题的正确方法吗?我在谷歌上找到的一切都是使用python请求或bash。
答案 0 :(得分:0)
我猜你不是将身体解析为JSON。试试这个 -
data = JSON.parse(body);
session_cookie = data.json.data.cookie;