"JSON_PARSING_ERROR:位置0处的意外字符(d);当从GAS发送GCM请求时
"JSON_PARSING_ERROR: Unexpected character (d) at position 0." when sending GCM request from GAS
这似乎与许多其他问题非常相似,而且很明显,该错误表明我的JSON负载有问题。但我不知道为什么。
我正在运行一个谷歌应用程序脚本来测试向GoogleFirebase云消息发送消息。
我的代码:
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()};
}
当我在调试模式下运行它时,对象负载看起来很好——就像一个普通的Javascript对象。params。UrlFetchApp采用Javascript对象,而不是JSON表示法中的String。然而,我确实尝试了"JSON.stringfy(params)",但我得到了一个错误。我做错了什么?
注意:当我在调试器中暂停params时,它看起来是这样的:
{"headers":{"Content Type":"application/json","Authorization":"key=AbCdEfG"},"method":"post"是消息"},"到":"ZyXwVuT:ToKeNtOkEnToKeNtOkEnToKeNtOkEn"}}
我发现了这个问题,这要归功于https://stackoverflow.com/a/10894233/3576831
"payload"参数必须是此处指定的字符串:https://developers.google.com/apps-script/class_urlfetchapp?hl=fr-FR#获取。
调整脚本的这一部分工作:
var params = {
headers: headers,
method: "post",
payload: JSON.stringify(payload)
};
相关文章:
- "资源不足错误“;当从Chrome控制台重复发出ajax请求时
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 当从jquery的点击事件中的每个循环创建的数组到它之外时,它显示空白数组
- 仅当从列表中选择了一个特定选项时,才显示相关内容
- "未定义的“;当从Android向JavaScript传递数据时
- 当从jqueryajax调用输入表单时,它不起作用
- "JSON_PARSING_ERROR:位置0处的意外字符(d);当从GAS发送GCM请求时
- 不打印“;id”;当从JavaScript以HTML调用时
- 当从Java转换时,gwt可以生成.js而不是.html文件
- 自定义Div滑块运行过快,但仅当从另一个浏览器选项卡返回时
- 当从servlet返回到JSP时,Javascript的变化非常明显
- 当从代码后台输出Javascript时,如何处理换行符
- 仅当从另一个 URL 加载数据时,才会触发另一个插件
- 当从 for 循环填充变量时如何使用 promise
- 当从第一个选项中选择一个选项时,如何取消隐藏另一个选择字段
- 如果 else 语句在 javascript onclick() 中不起作用,当从 android webview 调用
- 当从一个页面快速导航到另一个脚本警报时,显示原因
- 当从指令中删除元素时,AngularJs 是否会自动销毁范围
- 当从设置中将Javascript注入UIWebView时,我只得到数字
- jQuery+Edge Animate:仅当从单击事件调用时才出错:对象 [对象对象] 没有方法“基础”