我正在尝试使用 google apps 脚本将 http post 发送到 GCM 服务器。我有设备 ID 和正确的凭据。这是我正在使用的代码:
function doThat(){
var url = "https://android.googleapis.com/gcm/send";
var options = {
"method": "post",
"headers": {
"Authorization": "key=myAPIKEY",
"Content-Type":"application/json"
},
"payload": {
"data": {
"score": "5x1",
"time": "15:10"
},
"registration_ids": ["regid1"]
}
};
var response = UrlFetchApp.fetch(url, options);
Logger.log("Response: "+response.toString());
}
这里,myAPIKEY 和 regid1 是占位符。 一个等效的 java 代码适用于此。因此,凭据似乎没有问题。 我经历了this android 文档的链接,以查找要发送到 GCM 服务器的 json 格式(那些在下面编辑此代码的人请注意,api key 和其他 key 直接取自 android GCM 网站上的 link。这不是我的。所以 PLS不要更改它):
Content-Type:application/json
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA
{
"registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
"data" : {
...
},
}
注意:如果 我总是在执行日志中的 Logger.log() 语句中收到“Error=Missing Registration”。 Java 等效代码工作完美。但是谷歌脚本给出了这个错误。那么这里出了什么问题?
最佳答案
我认为您需要设置 contentType 高级参数并对您的负载进行字符串化。请参阅此示例以获取指示:
https://github.com/entaq/GoogleAppsScript/blob/master/Android/SharedDb.gs
关于javascript - 使用 Google Apps 脚本将 HTTPPost 发送到 GCM 时出现错误=缺少注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024045/