无法调用reddit的/ api /提交

我无法得到reddit / r / redditdev的任何帮助,所以我希望你很好的人在stackoverflow可以帮助

我试图调用/ API /提交 。

  1. 我可以成功login用户并检索承载/访问令牌。 (我使用passport-reddit节点模块)
  2. 我可以成功地调用/ api / needs_captcha
  3. 当/ needs_captcha返回true时,我可以成功调用/ api / new_captcha
  4. 我可以向用户显示validation码图像
  5. 现在我尝试使用nodejs的请求模块像这样调用提交

    var options = { url: 'https://oauth.reddit.com/api/submit', method: 'POST', headers: { 'Authorization': 'bearer '+usertoken , 'user-agent': 'node.js' }, json: data } request(options, function(error, response, body) ... 

我的“数据”variables的示例如下所示:

 { api_type: 'json', kind: 'self', sr: 'test', title: 'more test', text: 'hello world', iden: 'o6NsDh4IMCDb2To2DeUXJAgEPkB4O7uS', captcha: 'WZRTBL' } 

但是我回来了:

 { "jquery":[ [0, 1, "call", ["body"]], [1, 2, "attr", "find"], [2, 3, "call", [".status"]], [3, 4, "attr", "hide"], [4, 5, "call", []], [5, 6, "attr", "html"], [6, 7, "call", [""]], [7, 8, "attr", "end"], [8, 9, "call", []], [1, 10, "attr", "captcha"], [10, 11, "call", ["1oWOOhcicpcpdwjENw5KrR2xHRl7J0aS"]], [1, 12, "attr", "find"], [12, 13, "call", [".error.BAD_CAPTCHA.field-captcha"]], [13, 14, "attr", "show"], [14, 15, "call", []], [15, 16, "attr", "text"], [16, 17, "call", ["care to try these again?"]], [17, 18, "attr", "end"], [18, 19, "call", []] ] } 

此外,我试图运行这个不同的用户,一个有足够的业力点,并不需要validation码。

我发布后,我得到了这似乎表明成功的回应:

 { "jquery":[ [0, 1, "call", ["body"]], [1, 2, "attr", "find"], [2, 3, "call", [".status"]], [3, 4, "attr", "hide"], [4, 5, "call", []], [5, 6, "attr", "html"], [6, 7, "call", [""]], [7, 8, "attr", "end"], [8, 9, "call", []] ] } 

但是我在/ r / test子reddit中找不到我发布的消息。

我一定是做错了什么

在经历了与/ api / submit相关的不同文档之后,我发现你已经错过了你的“数据”范围。 缺lessuh需要看起来像你的错误(看下面的文档)

这里有更多的文档与我所说的相关:

https://github.com/reddit/reddit/wiki/API:-submit http://www.reddit.com/dev/api

尝试将您的User-Agent标题更改为更具描述性的内容。 请参阅这里的指导: https : //github.com/reddit/reddit/wiki/API 。 我听说过使用像node.js这样的通用用户代理string的问题。

如果您仍然遇到麻烦,Apigee控制台( https://apigee.com/console/reddit )帮助我debuggingreddit API的问题。 只要添加您的用户代理标题和授权令牌,并通过控制台混淆不同的参数,如果这比构build应用程序的更改快。

我刚刚有一个类似的问题,修复(到你的第二个错误)是不是作为JSON发送,而是作为URI中的查询。

 /api/submit?api_type=json&kind=self&sr=test&title=more%20test&text=hello%20world 

根据需要添加其他字段。

保持你使用的'url','method'和'headers'。

这应该然后返回一个JSON像这样:

 "json": { "data": { "id": "12abcd", "name": "t3_12abcd", "url": "https://www.reddit.com/r/test/comments/12abcd/more_test/" }, "errors": [] }