Pergunta

Eu estou tentando enviar o http post para GCM server utilizando o script do google apps.Eu tenho o ID do dispositivo e as credenciais adequadas.Aqui está o código que eu estou usando:

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());
}

Aqui, myAPIKEY e regid1 são detentores de local.Um equivalente em código java funciona bem para isso.Por isso, não se parece nenhum problema com as credenciais.Eu fui através de este link do android documentação para encontrar o formato json para ser enviado para a GCM servidor como(Aqueles que editar este código abaixo, note que as chaves de api e outros são tomadas directamente a partir do que link no android GCM site.SEU E NÃO MEU.ASSIM, OS PLS NÃO ALTERÁ-LO):

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

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

Nota:Se Eu sempre recebo o erro "Erro=Falta de Registro" no Registrador.log() declaração em logs de execução.O java código equivalente funciona perfeito.Mas script do google dá esse erro.Então, o que está errado aqui?

Foi útil?

Solução

Eu acho que você precisa definir o argumento advanced ContentType e suportar sua carga útil.Veja esta amostra para ponteiros:

https://github.com/entaq/googleappsscript/blob/Master / Android / shareddb.gs

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top