2016-09-17 169 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