Parse-server:iOS推送通知

我试图做一个推送通知,我已经在parse-server / certs文件夹中设置我的.p12文件。 这是我的index.js中的代码:

var api = new ParseServer({ databaseURI: process.env.DATABASE_URI || 'mongodb://localhost:27017/dev', cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', appId: 'xx', masterKey: 'xx', fileKey: 'xx', clientKey: 'xx', serverURL: 'xx', push: { ios: [ { pdx: 'certs/ParsePushDevelopmentCertificate.p12', // Dev PFX or P12 bundleId: 'bundleId', production: false // Dev } ] } }); 

我想通过云代码发送推送通知。 所以这里是我的main.js:

 Parse.Cloud.define("pushToAll", function (request, response) { var message = request.params.message; if (message != null && message !== "") { message = message.trim(); } else { response.error("Must provide \"message\" in JSON data"); return; } // Can see this at https://www.parse.com/apps/{APP_NAME}/cloud_code/log var logMessage = "Sending \"{0}\" to all installations".format(message); console.log(logMessage); var pushQuery = new Parse.Query(Parse.Installation); // pushQuery.containedIn("deviceType", ["ios", "android"]); // errors if no iOS certificate // Send push notification to query Parse.Push.send({ where: pushQuery, // Set our installation query data: { alert: message } }, { success: function () { // Push was successful console.log("Message was sent successfully"); response.success('true'); }, error: function (error) { response.error(error); } , useMasterKey: true}); }); 

我在我的Xcode项目中调用它:

 [PFCloud callFunctionInBackground:@"pushToAll" withParameters:@{@"message" : @"test"} block:^(id object, NSError *error) { if (!error) { NSLog(@"YES"); } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Try Again !" message:@"Check your network" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } }]; 

但是,这是行不通的: [Error]: {"code":1,"message":"Internal server error."} (Code: 1, Version: 1.12.0)

在Parse.com上,我的“安装”字段在我的数据库中: 截图

你有什么想法吗?

我的云代码是不正确的,这是好的代码:

 Parse.Cloud.define("pushToAll", function (request, response) { var message = request.params.message; console.log(message); if (message != null && message !== "") { message = message.trim(); } else { response.error("Must provide \"message\" in JSON data"); return; } // Can see this at https://www.parse.com/apps/{APP_NAME}/cloud_code/log // var logMessage = "Sending to all installations".format(message); // console.log(logMessage); var pushQuery = new Parse.Query(Parse.Installation); // pushQuery.containedIn("deviceType", ["ios", "android"]); // errors if no iOS certificate // Send push notification to query Parse.Push.send({ where: pushQuery, // Set our installation query data: { "alert": message } }, { success: function () { // Push was successful console.log("Message was sent successfully"); response.success('true'); }, error: function (error) { response.error(error); } , useMasterKey: true}); });