masterKey可以在iOS应用程序中使用Parse Server发送推送通知吗?

时间:2017-01-06 04:52:55

标签: ios swift xcode parse-platform parse-server

我试图在应用中开发Push Notifications功能,首先尝试通过应用发送它们,我已经听说masterKey是必需的。虽然我没有听说过任何地方我可以将masterKey放入我的Xcode项目中。

是否有特定的位置在我的Xcode项目中包含masterKey? masterKey甚至可以用于快速项目吗?

2 个答案:

答案 0 :(得分:0)

是的,必须使用masterKey发送推送通知,但由于安全问题,Parse-server不支持从客户端应用程序推送。所以,你需要为它编写一个云函数。一个简单的云功能,可以推送给已经安装了您的应用的所有用户。

Parse.Cloud.define("push", function(request, response){
    var message = request.params.message;
    //Pushes work with Installation table
    //So, you need to select to whom you want to push
    var installationQuery = new Parse.Query(Parse.Installation);

    //You should set expiration time when push will be expired
    //This is optional
    var expDate = new Date();
    expDate.setDate(expDate.getDate() + 1); //The notification will expire in 1 day

    //Setting up push data
    var data = {"badge": "Increment", "sound": "default"};
    data['alert'] = message;

    //Sending push
    Parse.Push.send({
        where: installationQuery,
        data: data,
        expiration_time: expDate
    },{
        success: function () {
            response.success("Pushed successfully");
        },
        error: function (error) {
            response.error(error);
        },
        useMasterKey: true
    });
});

在您的iOS应用中,

PFCloud.callFunctionInBackground("push", withParameters: ["message":"Pushing from cloud code"]) {
  (response: AnyObject?, error: NSError?) -> Void in
  //Do stuffs
}

希望这有帮助

答案 1 :(得分:-1)

masterKey添加服务器端。根据您的设置或实例,您可以在index.js文件中进行设置。

// With the value of your app's Master Key completed:
masterKey: process.env.MASTER_KEY || '<your app's Master Key>'

如果您使用环境变量,可以使用以下值设置json文件:

"PARSE_SERVER_MASTER_KEY": "#####",

应该在您设置证书路径的同一文件中。