如何解决从谷歌应用程序脚本调用新聊天 API 时出错
我正在尝试从谷歌应用程序脚本调用 FreshChat API。出站消息的 GET 请求工作正常,但 POST 请求因错误而失败
异常:http://api.in.freshchat.com 的请求失败返回代码 400。截断的服务器响应:{"success":false,"errorCode":0,"errorMessage":"HTTP 405 Method Not Allowed"," errorData":null,"errorName":null}(使用 muteHttpExceptions 选项检查完整响应)
以下是请求的详细信息
function myFunctiontest() {
var url = "http://api.in.freshchat.com/v2/outbound-messages/whatsapp";
var headersPOST = {
'Authorization': 'Bearer XXXXXX','Content-Type': 'application/json','Accept': 'application/json'
};
var bodyPayload = {"from": {"phone_number": "+XXXXXX"},"provider": "whatsapp","to": [{"phone_number": "+XXXXX"}],"data": {"message_template": {"storage": "none","template_name": "XXXXXX","namespace": "XXXXX","language": {"policy": "deterministic","code": "en"},"template_data": [{"data": "XXXXX"}]}}};
var options = {
'method': 'post','contentType': 'application/json','headers': headersPOST,'payload': JSON.stringify(bodyPayload),'muteHttpExceptions':true
};
var response = UrlFetchApp.fetch(url,options);
console.log(response.getAllHeaders());
Logger.log(JSON.parse(response.getContentText()));
}
相同的标头适用于 GET 请求。同样的帖子请求也来自 POSTMAN。
解决方法
Freshchat 支持帮助解决了这个问题。
有两个主要变化
- 使用 https 而不是 http
- 在标题中添加了 contentType。
function myFunctiontest() {
var url = "https://api.in.freshchat.com/v2/outbound-messages/whatsapp";
var headersPOST = 'Bearer XXXXXX';
var bodyPayload = {"from": {"phone_number": "+XXXXXX"},"provider": "whatsapp","to": [{"phone_number": "+ XXXXX"}],"data": {"message_template": {"storage": "none","template_name": "XXXXXX","namespace": "XXXXX","language": {"policy": "deterministic","code": "en"},"template_data": [{"data": "XXXXX"}]}}};
var options = {
method: 'POST',//content-type: 'application/json',headers: { Authorization: headersPOST,'content-type': 'application/json'},payload: JSON.stringify(bodyPayload),muteHttpExceptions:true
};
var response = UrlFetchApp.fetch(url,options);
var text = response.getResponseCode();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。