IBM 推送通知:无效 Json

IBM Push Notification: Invalid Json

我尝试使用 https://mobile.ng.bluemix.net/imfpush/v1/apps/{appID}/devices/{deviceID} to push notification on this site: https://mobile.ng.bluemix.net/imfpush/#/,但出现错误消息

正文:

{ "alert" : "You have a request for payment."}

错误信息:

400 {
  "code": "FPWSE0004E",
  "message": "Bad Request - Invalid JSON."
}

并尝试通过在 nodejs 上调用 https 请求来使用

在我的代码中:

var message = {
            alert : "You have a request for payment.",
            url : "payment_id"
        };

var headers = {
            'Content-Type' : 'application/json',
            'appSecret': 'xxxxxx',
             "clientSecret": "xxxxxxxx"
            'Content-Length' : Buffer.byteLength(message, 'utf8')
        };

var options = {
                            host : 'mobile.ng.bluemix.net',
                            port : 443,
                            path : '/imfpush/v1/apps/'+appId +'/devices/'+deviceId,
                            method : 'PUT',
                            headers : headers,
                            data:   JSON.stringify(message)
                        };

var reqPost = https.request(options, function(res) {
            res.on('data', function(d) {
                 console.info('PUT result:\n');                  
                 process.stdout.write(d);
                 console.info('\n\PUTcompleted');
                    });
                });

reqPost.end();

并通过邮递员致电API,我收到一条错误消息:无法得到任何回应。 请告诉我你的想法。

您似乎使用了错误的端点来发送推送通知。

下面是一个非常简单的示例,它使用 Node 中的轻量级请求库 superagent 向设备发送推送通知。

var request = require('superagent');

var baseUrl = 'https://mobile.ng.bluemix.net';

var message = {
  "message": {
    "alert": "Notification alert message"
  }
};

request
  .post(baseUrl + '/imfpush/v1/apps/' + appId + '/messages')
  .send(message)
  .set('Content-Type', 'application/json')
  .set('Accept', 'application/json')
  .set('appSecret', appSecret)
  .end(function(err, res){
    console.log(res.body) || console.log(err);
  });

您只需要设置 appIDappSecret(可能是外部设置)。

或者,如果您想发送至设备 ID,只需更改消息正文:

var message = {
  "message": {
    "alert": "Notification alert message"
  },
  "target": {
    "deviceIds": [
      deviceID
    ]
  }
};

并设置deviceID.