我一直在尝试更新使用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
});
});
答案 0 :(得分:0)
从我所看到的,响应是不确定的。它显示了ils是sendPush云函数的第二个参数