Sco*_*ott 3 javascript json google-apps-script google-cloud-messaging firebase-cloud-messaging
这似乎与许多其他问题非常相似,并且很明显错误表明我的JSON有效负载有问题.但我不知道为什么.
我正在运行Google Apps脚本来测试向Google Firebase云消息传递消息.
我的代码:
function SendGCMessage() {
var url = "https://gcm-http.googleapis.com/gcm/send";
var apiKey = "AbCdEfG";
var to = "ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKeNtOkEn"
var payload = {
"data": {
"message" : "This is the message"
},
"to":to
};
var sendCount = 1;
var headers = {
"Content-Type": "application/json",
"Authorization": "key=" + apiKey
};
var params = {
headers: headers,
method: "post",
payload: payload
};
var response = UrlFetchApp.fetch(url, params);
return {message: "send completed: " + response.getContentText()};
}
Run Code Online (Sandbox Code Playgroud)
当我在调试模式下运行它时,对象有效负载看起来很好 - 就像一个普通的Javascript对象.参考也是如此.UrlFetchApp采用Javascript对象,而不是JSON表示法中的String.但是我确实尝试了"JSON.stringify(params)",我收到了一个错误.我做错了什么?
注意:当我在调试器中暂停时,params看起来像这样:
{ "报头":{ "内容类型": "应用/ JSON", "授权": "键= ABCDEFG"}, "方法": "后", "有效载荷":{ "数据":{ "消息" :"这是消息"},"to":"ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKeNtOkEn"}}
我发现了这个问题,感谢/sf/answers/762596341/
'payload'参数必须是此处指定的字符串:https: //developers.google.com/apps-script/class_urlfetchapp?hl = fr-FR #fetch.
调整脚本的这一部分有效:
var params = {
headers: headers,
method: "post",
payload: JSON.stringify(payload)
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5798 次 |
最近记录: |