我正在尝试使用GroupMe提供的应用程序接口为它创建一个客户端,但我无法找出我所做的事情有什么问题。
curl -X POST -H "Content-Type: application/json" -d '{"message": { "text": "Nitin is holding me hostage", "source_guid": "7374"}}' https://api.groupme.com/v3/groups/30885833/messages?token=I_PUT_MY_ACCESS_TOKEN_HERE我已经执行了该命令,它成功地返回:
Click here to see JSON (Hastebin)
我的问题是把它放到Javascript代码中,我已经这样做了:
var HTTPS = require('https');
var request = require('request');
function postMessage() {
var options, body, botReq;
options = {
hostname: 'api.groupme.com',
path: '/v3/groups/30885833/messages?token=DbZoE9Eablg43ZIGdfKsFkXDjLzR6RDUkwHT9JNn',
method: 'POST'
};
body =
{ '"message"': { '"text"': "I am a post message", '"source_guid"': "7374" } };
console.log(body);
botReq = HTTPS.request(options, function (res) {
if (res.statusCode == 201) {
//neat
} else {
console.log('rejecting a bad status code ' + res.statusCode);
}
});
botReq.on('error', function (err) {
console.log('error posting message ' + JSON.stringify(err));
});
botReq.on('timeout', function (err) {
console.log('timeout posting message ' + JSON.stringify(err));
});
botReq.end(JSON.stringify(body));
}
但是这将返回,并且只返回错误代码400,并且我不确定如何找到与为什么它是Bad Request相关的其他信息。
本质上,我问的是如何正确地将上面给出的命令转换成javascript。谢谢!
发布于 2017-12-07 03:08:49
我认为问题在于你如何定义这样的身体。
body ={ '" message“':{ '"text"':”我是一条post消息“,'"source_guid"':"7374”} };
你最终得到了一个对象,它的关键字是" message ",而不是message。
尝试:
body = {"message":{ "text":"Nitin劫持我作为人质“,"source_guid":"7374"}}
https://stackoverflow.com/questions/47681282
复制相似问题