首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析服务器无法发送推送通知?

解析服务器无法发送推送通知?
EN

Stack Overflow用户
提问于 2018-01-18 12:25:53
回答 1查看 607关注 0票数 4

我有一个Parse-Server (由heroku托管),我已经将其配置为发送推送通知。它在仪表板上看起来设置正确,但当我实际发送一个推送时,它只是说推送已“保存”,但当我去检查它的状态时,它发送失败。下面是设置的index.js:

代码语言:javascript
复制
var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it $
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  // Don't$
  liveQuery: {
    classNames: ["Posts", "Comments"] // List of classes to support for query s$
  },
  push: JSON.parse(process.env.SERVER_PUSH || "{}"),
});

在我的heroku站点上的配置变量中,PARSE_SERVER_PUSH (以及appId、masterKey和serverURL)配置如下:

代码语言:javascript
复制
{ "ios": 
   { "pfx": "/Users/path/to/folder/Prod\Cert.p12 ", 
    "passphrase": "******", 
    "bundleId": "com.parse.app",
    "production": true
    }
}

我不确定为什么仪表板似乎设置了服务器以正确发送推送通知,但它们都失败了?

编辑:我也尝试过通过API请求发送推送,如下所示:

代码语言:javascript
复制
curl -X POST \
    -H "X-Parse-Application-Id: myAppsID" \
    -H "X-Parse-Master-Key: ***************" \
    -H "Content-Type: application/json" \
    -d '{ 
        "where": { 
            "deviceType": { "$in": [ "ios",  "android"  ]  }  
        },
        "data": {
            "title": "Ant-man",
            "alert": "This is awesome. It is awesome."
        }
    }' \
    https://appName.herokuapp.com/parse/push

这在我的终端上返回了{"result":true},但仍然在仪表板上显示推送失败。

Edit2:我还注意到,尽管选择了我为推送创建的特定受众,但解析服务器总是报告我试图将其发送给默认的"Everyone“。不确定这是否提供了任何额外的提示。

EN

回答 1

Stack Overflow用户

发布于 2018-01-23 23:25:47

解析服务器不支持客户端推送你可以在这里了解更多信息:

http://docs.parseplatform.org/parse-server/guide/#push-notifications

之所以不支持它,是因为您必须提供您的masterKey,而这只能在云代码中完成。因此,为了推送通知您的用户,您必须创建一个将执行推送的云代码函数,并且您需要使用masterKey

由于云代码是NodeJS,您可以阅读解析服务器JavaScript文档以了解如何执行此操作。具体来说,您需要阅读这一部分:http://docs.parseplatform.org/js/guide/#push-notifications

但我强烈建议阅读更多,以了解它是如何工作的。

下面是我的一个解析服务器项目中的一些代码片段:

代码语言:javascript
复制
Parse.Push.send({
    data: oPayload,
    where: oWhereQuery
}, {
        useMasterKey: true
    }).then(function () {
        console.log("Push notification sent to: " + aRecievers);
    }, function (err) {
        console.log("Failed to send push notification with error: " + err);
    });

从上面的代码中可以看到,我发送了有效负载,这是需要发送的有效负载(根据解析服务器文档,因为此有效负载必须适合APNS/GCM)。是解析服务器功能的,它允许您筛选要向哪些设备发送推送通知。还要注意,我设置了userMasterKey: true,这意味着我以解析服务器管理员的身份发送此推送

在创建云代码函数并向parse-server注册设备之后,您可以执行CURL请求来触发云代码函数来测试它。(端点为:https://:/functions/

希望能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48313842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档