用Javascript格式化TwitterAPI端点
我正在尝试创建一个谷歌应用程序脚本,使用谷歌表单向收件人发布数据(直接消息) 表示可以按如下方式发布信息:用Javascript格式化TwitterAPI端点,javascript,json,api,google-apps-script,twitter,Javascript,Json,Api,Google Apps Script,Twitter,我正在尝试创建一个谷歌应用程序脚本,使用谷歌表单向收件人发布数据(直接消息) 表示可以按如下方式发布信息: curl --request POST --url https://api.twitter.com/1.1/direct_messages/events/new.json --header 'authorization: OAuth oauth_consumer_key="YOUR_CONSUMER_KEY", oauth_nonce="AUTO_GENERATED_NONCE", o
curl --request POST
--url https://api.twitter.com/1.1/direct_messages/events/new.json
--header 'authorization: OAuth oauth_consumer_key="YOUR_CONSUMER_KEY", oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE", oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP", oauth_token="USERS_ACCESS_TOKEN", oauth_version="1.0"'
--header 'content-type: application/json'
--data '{"event": {"type": "message_create", "message_create": {"target": {"recipient_id": "RECIPIENT_USER_ID"}, "message_data": {"text": "Hello World!"}}}}'
twurl -A 'Content-type: application/json' -X POST /1.1/direct_messages/events/new.json -d '{"event": {"type": "message_create", "message_create": {"target": {"recipient_id": "RECIPIENT_USER_ID"}, "message_data": {"text": "Hello World!"}}}}'
问题是我对这件事还不熟悉。我如何用Javascript表示这一点?到目前为止,我有:
var url = "https://api.twitter.com/1.1/direct_messages/events/new.json";
var headers = {
"contentType": "application/json",
"headers":{"authorization": OAuth oauth_consumer_key="YOUR_CONSUMER_KEY",
oauth_nonce="AUTO_GENERATED_NONCE",
oauth_signature="AUTO_GENERATED_SIGNATURE",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
oauth_token="USERS_ACCESS_TOKEN",
oauth_version="1.0"
},
"data": {"event": {"type": "message_create", "message_create": {"target": {"recipient_id": "RECIPIENT_USER_ID"}, "message_data": {"text": "Hello World!"}}}}
};
var response = twitterService.fetch(url, headers);
if (response.getResponseCode() === 200) {
status = "SENT";
} else {
status = "ERROR: " + JSON.parse(response.getContentText()).errors[0].message;
}
如何以正确的方式设置格式?我可以问一下您的情况吗?您希望将上述curl命令转换为Google Apps脚本。我的理解正确吗?另外,您是否已经拥有了正确的
oauth\u nonce
、oauth\u signature
和oauth\u token
?是的,我想在谷歌应用程序脚本中实现它。我实际上没有oauth\u nonce、oauth\u签名和oauth\u令牌的正确值。他们对你的回答都很奇怪。我为我糟糕的英语水平道歉。不幸的是,我不能理解你的处境。您是否具有测试脚本所需的值?例如,当您使用授权所需的值运行curl命令时,是否可以确认可以得到预期的响应?响应为“reference error:empty Json string”。我确信我的Json格式是错误的,我需要帮助来正确编写。谢谢你的回复。在当前阶段中,无法使用上述curl命令。如果我的理解是正确的,那么当curl命令转换为GoogleApps脚本时,您将如何测试脚本?
var data = {
"event": {
"type": "message_create",
"message_create": {
"target": {
"recipient_id": "2913462268"
},
"message_data": {
"text": "Hello World!",
}
}
}
}
// request options
var options = {
'method' : 'POST',
'contentType': 'application/json',
'escaping': false,
// Convert the JavaScript object to a JSON string.
'payload' : JSON.stringify(data)
};