2015-08-28 18 views
1

我试图在解析云代码时提出一个http请求,我认为这应该很容易做到。我正在关注documentation on the push API解析云代码http请求不适用于带有标题和数据的离子推送api

但是我无法让它工作。我有以下代码:

var privateKey = 'xxxx:'; 
var tokens = ['yyyyy1','yyyyy2']; 
var appId = 'zzzzz'; 
// Encode your key 
var Buffer = require('buffer').Buffer; 
var b = new Buffer(privateKey); 

var auth = b.toString('base64'); 
// Build the request object 
Parse.Cloud.httpRequest({ 
    method: "POST", 
    url: "https://push.ionic.io/api/v1/push", 
    headers: { 
    'Content-Type': 'application/json', 
    'X-Ionic-Application-Id': appId, 
    'Authorization': 'basic ' + auth 
    }, 
    data: { 
    "tokens": tokens, 
    "notification": { 
     "alert":"sent by ionic push through Parse cloud code!" 
    } 
    } 
}).then(function(httpResponse) { 
    console.log(httpResponse); 
    response.success(httpResponse.text); 
}, function(err) { 
    console.log(err); 
    response.error(err); 
}) 

在日志,则它返回:

Result: {"uuid":"95b3a0fb-6fb6-4fc9-032d-486338579455","status":400,"headers":{"Access-Control-Allow-Headers":"Origin, X-Requested-With, Content-Type, Accept","Access-Control-Allow-Origin":"*","Connection":"close","Content-Length":"71","Content-Type":"application/json; charset=utf-8","Date":"Fri, 28 Aug 2015 09:01:33 GMT","Etag":"W/\"47-/thoVeqbHE/JKNAoGBGTNQ\"","Server":"Cowboy","Via":"1.1 vegur","X-Powered-By":"Express"},"text":"{\"result\":\"error\",\"message\":\"A list of tokens or user_ids is required\"}","data":{"result":"error","message":"A list of tokens or user_ids is required"},"buffer":[123,34,114,101,115,117,108,116,34,58,34,101,114,114,111,114,34,44,34,109,101,115,115,97,103,101,34,58,34,65,32,108,105,115,116,32,111,102,32,116,111,107,101,110,115,32,111,114,32,117,115,101,114,95,105,100,115,32,105,115,32,114,101,113,117,105,114,101,100,34,125],"cookies":{}} 
I2015-08-28T09:01:33.951Z]{"uuid":"95b3a0fb-6fb6-4fc9-032d-486338579455","status":400,"headers":{"Access-Control-Allow-Headers":"Origin, X-Requested-With, Content-Type, Accept","Access-Control-Allow-Origin":"*","Connection":"close","Content-Length":"71","Content-Type":"application/json; charset=utf-8","Date":"Fri, 28 Aug 2015 09:01:33 GMT","Etag":"W/\"47-/thoVeqbHE/JKNAoGBGTNQ\"","Server":"Cowboy","Via":"1.1 vegur","X-Powered-By":"Express"},"text":"{\"result\":\"error\",\"message\":\"A list of tokens or user_ids is required\"}","data":{"result":"error","message":"A list of tokens or user_ids is required"},"buffer":{"0":123,"1":34,"2":114,"3":101,"4":115,"5":117,"6":108,"7":116,"8":34,"9":58,"10":34,"11":101,"12":114,"13":114,"14":111,"15":114,"16":34,"17":44,"18":34,"19":109,"20":101,"21":115,"22":115,"23":97,"24":103,"25":101,"26":34,"27":58,"28":34,"29":65,"30":32,"31":108,"32":105,"33":115,"34":116,"35":32,"36":111,"37":102,"38":32,"39":116,"40":111,"41":107,"42":101,"43":110,"44":115,"45":3... (truncated) 

响应:

需要令牌或user_ids列表

对我来说没有意义。我尝试过不同类型的令牌,但都没有工作。

有谁能告诉我为什么这么简单的POST在Parse云代码中不起作用吗?

+0

你为什么使用解析和离子服务? –

回答

0

我有这样的解决方案在我的应用程序工作。对我的要求是:

var req = { 
      method: 'POST', 
      url: 'https://push.ionic.io/api/v1/push', 
      headers: { 
       'Content-Type': 'application/json; charset=utf-8', 
       'X-Ionic-Application-Id': appId, 
       'Authorization': 'basic ' + auth 
      }, 
      body: { 
       "tokens": tokens, 
       "notification": { 
        "alert": mensaje 
        } 
       } 
      } 
     }; 

我认为你把对象放入“数据”属性,而它应该是“身体”。

+0

你如何发送此请求。我使用'$ http({req})'做了它,但是我得到了400错误请求 –