簡體   English   中英

使用Google Apps腳本將HTTPPost發送到GCM時出現錯誤=缺少注冊

[英]Getting Error=Missing Registration while sending HTTPPost to GCM Using Google Apps Script

我正在嘗試使用Google Apps腳本將http發布發送到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代碼對此效果很好。 因此,憑證似乎沒有問題。 我瀏覽了android文檔的鏈接以找到要發送到GCM服務器的json格式為(以下編輯此代碼的人請注意,api鍵和其他密鑰直接從android GCM網站上的該鏈接獲取。它不是我的。因此請不要更改它):

    Content-Type:application/json
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA

{
  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
  "data" : {
    ...
  },
}

注意:如果我總是在執行日志的Logger.log()語句中收到“錯誤=缺少注冊”。 等效的Java代碼效果很好。 但是谷歌腳本給出了這個錯誤。那么這里出什么問題了?

我認為您需要設置contentType高級參數並字符串化有效負載。 請參閱此示例以獲取指針:

https://github.com/entaq/GoogleAppsScript/blob/master/Android/SharedDb.gs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM