2016-09-17 182 views
0

我们试图在从Parse迁移时实施客户端到客户端推送通知。通过其他平台,讨论等,似乎他们的方式是通过云代码 - 针对社区的几个问题 -解析迁移 - 客户端到客户端推送通知

  1. 我们必须在生产中公开主密钥吗?
  2. 有人得到以下场景,可以使用他们可以共享的一些示例云代码: 用户X像用户Y的对象Z ...用户Y将实时接收用户X的动作触发的通知。

TIA。

回答

0
  1. 号的主密钥将只在服务器端的云的代码中使用,不会暴露给你的客户,所以当你调用从云代码推送API,你需要设置useMasterKey:真正

  2. 为了推送到你的y您需要做到以下几点:

    • 当您在客户端代码中创建ParseInstallation确保您还没有保存用户交流olumn。您需要将用户保存在ParseInstallation中,因为您的要求是将推送发送给一个或多个用户,因此为了知道该用户具有哪些设备(当然,一个用户可以有多个设备),则需要保存对用户的引用在ParseInstallation类

    • 下一页里面,你需要使用下面的代码,以推送通知发送给用户:

Parse.Cloud.afterSave("SendPush", function(request) { 
 

 

 
    var query = new Parse.Query(Parse.User); 
 
    query.equalTo("objectId", "{YOUR_USER_OBJECT_ID"}); 
 
/* here you get the user by it's id. if you have another identifier or you want to use another field you can change it. You can also add multiple conditions if you like */ 
 

 
// here you can add other conditions e.g. to send a push to sepcific users or channel etc. 
 

 
var payload = { 
 
    alert: "YOUR_MESSAGE" 
 
    // you can add other stuff here... 
 
}; 
 

 

 
Parse.Push.send({ 
 
    data: payload, 
 
    where: query 
 
}, { 
 
    useMasterKey: true 
 
}) 
 
.then(function() { 
 
    response.success("Push Sent!"); 
 
}, function(error) { 
 
    response.error("Error while trying to send push " + error.message); 
 
}); 
 
});

请确保从客户端发送用户Y的objectId。如果你没有发送,你需要找到一种方法来获取它(也许从DB中获取它)

+0

非常感谢你,冉!我想我的主要问题是让所有不同的系统彼此对话...比如说Parse云代码如何与MongoDB对话,以及所有与AWS的对话。但这也有帮助! – JustK