使用Parse-Server推送通知

时间:2018-04-04 17:20:58

标签: android json parse-platform parse-server

我一直在尝试更新使用parse.com的旧应用。我已经设置了自己的解析服务器实例,并指示应用程序使用新实例。除推送通知外,现在应用程序中的所有功能都可以使用。我创建了一个新的firebase应用程序并启用了FCM。我已将密钥放在myConfig.json中,当我从终端开始解析时,我会引用它。它看起来像:

{
    "appId": "idofapp",
    "masterKey": "master,
    "cloud": "/home/ubuntu/cloud/",
    "databaseURI": "mongodb://localhost:27017/test-app",
    "push": {
        "android":{
            "senderId": "99999999999",
            "apiKey": "BigLongKeyGeneratedFromFirebase"
            }
    }
}

我创建了一个我在配置文件中引用的cloud / main.js。它看起来像:

Parse.Cloud.define("SendPush", function(request) {
     var msg = request.params.message;
     var query = new Parse.Query(Parse.User);
     var user = request.params.user;
     query.equalTo("objectId", user);
     Parse.Push.send({
     where: query,
     data:{
          alert: {
               "title" : msg,
               "body" : msg
          },
          sound: 'default'
     }
     }, {
     useMasterKey: true,
     success: function(){
          response.success("Push Sent!");
     },
     error: function(error){
          response.error("Error while trying to send push " + error.message);
     }
     });
});

我启用了详细日志记录,因为它没有向我提供有关推送通知未送达的原因的任何信息。它只打印以下五次,只更改Status-Id。

    verbose: REQUEST for [POST] /parse/functions/SendPush: {
  "message": "You have a new message ",
  "user": "bXYVlwltiN"
} method=POST, url=/parse/functions/SendPush, x-parse-session-token=r:6d11549cc2f2e7ffd64ba07a6d327e8d, x-parse-application-id=app, x-parse-client-version=a1.15.8, x-parse-app-build-version=1, x-parse-app-display-version=1.0, x-parse-os-version=8.0.0, user-agent=Parse Android SDK 1.15.8 (com.company.name/1) API Level 26, x-parse-installation-id=44123cf9-65fa-4871-8798-22eafa291711, content-type=application/json, content-length=57, host=ec2-19-198-39-191.us-west-2.compute.amazonaws.com:1337, connection=Keep-Alive, accept-encoding=gzip, message=You have a new message , user=bXYVlwltiN
verbose: REQUEST for [POST] /parse/push: {
  "where": {
    "objectId": "bXYVlwltiN"
  },
  "data": {
    "alert": {
      "title": "You have a new message ",
      "body": "You have a new message "
    },
    "sound": "default"
  }
} method=POST, url=/parse/push, user-agent=node-XMLHttpRequest, Parse/js1.11.1 (NodeJS 7.10.1), accept=*/*, content-type=text/plain, host=localhost:1337, content-length=269, connection=close, objectId=bXYVlwltiN, title=You have a new message , body=You have a new message , sound=default
verbose: RESPONSE from [POST] /parse/push: {
  "headers": {
    "X-Parse-Push-Status-Id": "ZOrTd4OylW"
  },
  "response": {
    "result": true
  }
} X-Parse-Push-Status-Id=ZOrTd4OylW, result=true

未发送任何通知。你能告诉我我错过了什么吗?

我已将云功能更改为以下内容并仍然出现相同的错误:

Parse.Cloud.define("SendPush", function(request, response) {

var userId = request.params.user;
    var message = "sening a test message"; //request.params.message;
    var queryUser = new Parse.Query(Parse.User);
    queryUser.equalTo('objectId', userId);
    var query = new Parse.Query(Parse.Installation);
    query.matchesQuery('user', queryUser);

    Parse.Push.send({
      where: query,
      data: {
        alert: message,
        badge: 0,
        sound: 'default'
      }
    }, {
      success: function() {
        console.log('##### PUSH OK');
        response.success();
      },
      error: function(error) {
        console.log('##### PUSH ERROR');
        response.error('ERROR');
      },
      useMasterKey: true
    });

});

1 个答案:

答案 0 :(得分:0)

从我所看到的,响应是不确定的。它显示了ils是sendPush云函数的第二个参数