【发布时间】:2018-01-18 04:25:52
【问题描述】:
我有一个配置为发送推送通知的 Parse-Server(由 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:我还注意到,尽管选择了我为推送创建的特定受众,解析服务器总是报告我试图将其发送给默认的“每个人”。不确定这是否提供了任何额外的提示。
【问题讨论】:
-
你是在 xcode 中创建了你的 bundle id com.parse.app,还是你忘了换成你自己的?当然,您的路径中不应该有空格,尽管我假设您刚刚插入它来编辑您的实际路径?
-
@JakeT。我在 Xcode 中确实有 com.parse.app 作为我的包 ID,它最初与文件路径中的间距不正确,但我修复了它并没有修正问题。还有其他想法吗?
-
@JakeT。作为旁注,它在
PARSER_SERVER_PUSH中说 PARSER 而不是 PARSE,因为使用后者会导致仪表板无法打开 -
那你输入 index.js 了吗?因为它有
process.env.PARSE_SERVER_PURSH,而不是PARSER_SERVER_PUSH,这会导致失败,因为它会传入undefined。 -
@JakeT。我已经试过了。将其更改为
PARSER_SERVER_PUSH会导致仪表板无法连接到服务器
标签: heroku push-notification parse-server