我无法在reddit / r / redditdev上获得任何帮助,所以我希望你在stackoverflow上的好人可以帮忙
我正打算拨打/api/submit。
现在我尝试使用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) ...
我的“数据”变量示例如下所示:
{ 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", []]
]
}
此外,我尝试将其作为不同的用户运行,具有足够的业力点并且不需要验证码。
发布后,我得到了这个似乎表明成功的回复:
{
"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 subreddit中找到我发布的消息。
我必须完全做错事......
答案 0 :(得分:6)
在浏览了与/ api / submit相关的不同文档后,我发现您错过了"数据"的样本字段uh
。缺少uh
会导致看起来像你的错误(请参阅下面的文档)
这里有更多文档与我所说的相关:
https://github.com/reddit/reddit/wiki/API:-submit http://www.reddit.com/dev/api
答案 1 :(得分:0)
尝试将User-Agent标头更改为更具描述性的标题。请参阅此处的指南:https://github.com/reddit/reddit/wiki/API。我听说过人们只使用像node.js
这样的通用用户代理字符串时遇到问题。
如果您仍然遇到问题,Apigee控制台(https://apigee.com/console/reddit)已帮助我调试reddit API的问题。只需添加您的User-Agent标头和授权令牌,并通过控制台搞乱不同的参数,如果这比建立对您的应用程序的更改更快。
答案 2 :(得分:0)
我刚刚遇到了类似的问题,修复(对于你的第二个错误)是不是作为JSON发送,而是作为URI中的查询发送。
/api/submit?api_type=json&kind=self&sr=test&title=more%20test&text=hello%20world
根据需要附加任何其他字段。
保留您使用的“网址”,“方法”和“标题”。
然后应该像这样返回一个json:
"json": {
"data": {
"id": "12abcd",
"name": "t3_12abcd",
"url": "https://www.reddit.com/r/test/comments/12abcd/more_test/"
},
"errors": []
}