gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:29:38 25 4
gpt4 key购买 nike

我有一个解析服务器(由heroku托管),我已将其配置为发送推送通知。它在仪表板上似乎设置正确,但是当我实际发送一个时,它只是说推送已“已保存”,但当我去检查其状态时,它发送失败。这是设置的index.js:

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 || "{}"),
});

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

{ "ios": 
{ "pfx": "/Users/path/to/folder/Prod\Cert.p12 ",
"passphrase": "******",
"bundleId": "com.parse.app",
"production": true
}
}

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

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

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:我还注意到,尽管选择了我为推送创建的特定受众,但解析服务器总是报告我试图将其发送给默认的“每个人”。不确定这是否提供了任何额外的提示。

最佳答案

解析服务器不支持客户端推送,您可以在此处阅读更多相关信息:

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

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

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

但我强烈建议您阅读更多内容以了解其工作原理。

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

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)。 where 是解析服务器功能,它允许您过滤要向哪些设备发送推送通知。另请注意,我设置了 userMasterKey: true 这意味着我以解析服务器管理员身份发送此推送

创建云代码函数并向解析服务器注册设备后,您可以执行 CURL 请求来触发云代码函数进行测试。 (端点是:https://:/functions/

希望有帮助。

关于heroku - 解析服务器无法发送推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com