【问题标题】:Reddit api session cookie format?Reddit api会话cookie格式?
【发布时间】: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


【解决方案1】:

我猜您没有将正文解析为 JSON。试试这个 -

data = JSON.parse(body);
session_cookie = data.json.data.cookie;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-18
    • 2017-01-09
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2023-03-05
    相关资源
    最近更新 更多