2016-08-03 91 views
0

我在解析AWS推送時遇到問題。我們根據這些specifications配置了適配器,並且似乎可以使用curl方法向某個特定用戶(不知道該如何或爲什麼說該用戶)進行廣播,但我很困惑如何(或如果)我可以使用此功能將用戶發送給用戶推送通知。例如,「X喜歡Y的Z」其中X是喜歡者,Y是喜歡的,Z是喜歡的對象。將分析推送到AWS

回答

0

在解析你有多個選項發送推送通知。 通過提供查詢以及您想要發送推送的所有安裝,可以將推送通知發送給一個或多個用戶。您也可以爲用戶訂閱的特定頻道發送推送通知,這對於營銷非常有用,或者如果您的應用具有不同類型的用戶(例如:賣家,買家等) 推送發送的原因到安裝而不是用戶是因爲,一個用戶可以有多個安裝(例如iphone,ipad,其他設備等)

像我說有多個選項發送推,但我建議推送使用其中之一以下方法:

  1. 從雲代碼 - 你可以創建雲代碼函數,將由客戶端觸發,這個雲代碼函數將首先創建一個查詢所有的安裝您需要發送推送信息並執行將實際發送推送的功能。此雲代碼功能可以接收多個參數,這些參數可以包含發送推送前需要處理的任何數據,這些數據可以是用戶數組,頻道名稱等。 下面的雲代碼片段展示瞭如何發送了誰成功簽約的所有用戶的一推,有設備令牌:

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

 

 
    var query = new Parse.Query(Parse.Installation); 
 
    query.exists("deviceToken"); 
 

 
    var payload = { 
 
    alert: "after save push" 
 
    }; 
 

 
    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); 
 
    }); 
 

 

 
});

,然後從iOS SDK調用這個雲碼功能以下列方式:

 NSDictionary * parameters = @ {}; // put parameters if required 

    [PFCloud callFunctionInBackground: @"SendPush" 
     withParameters: parameters block:^(id _Nullable object, NSError * _Nullable error) { 
     // callback result 
     } 
    ]; 
  • 從iOS版SDK - 如果你不想送您從雲代碼推送的內容可以直接從您的iOS中執行。我認爲最好在雲代碼中完成,因爲在你寫的雲代碼中,然後你可以從任何SDK和REST API中觸發這個函數。
  • 在解析文檔,你可以找到很多關於如何從iOS版SDK發送推送例子所有的例子都可以在這裏找到:

    http://parseplatform.github.io/docs/ios/guide/#push-notifications

    但就像我說的最好的是做它與雲代碼。

    0

    如果您在不使用Parse的情況下使用AWS服務,則類似。更好的體系結構是移動設備調用雲中的業務邏輯(即AWS Lambda函數)並且該代碼發送推送通知的地方。這使您可以構建更安全的解決方案,因爲您可以在業務邏輯中控制內容並控制誰可以發送給誰(即,您必須在某人的好友列表上發送)。如果您打開了從設備直接發佈的權限,那麼當系統有人使用該應用的憑據併發布有害內容(可能會發布給所有應用的用戶)時,就會使系統容易受到攻擊。

    從AWS Lambda函數發送推送通知的示例...
    Can you send SNS push notification from lambda function in Amazon AWS?

    真誠,
    Andrew C製作
    AWS移動開發者體驗

    +0

    感謝安德魯!C感謝您的鏈接......它非常稀少,只是確認它可能......您是否會碰到更多關於此問題的信息,或者是否已更新Lambda文檔以包含客戶端到客戶端推送的更多信息? – JustK