将Parse Push迁移到AWS

时间:2016-08-03 02:05:20

标签: ios amazon-web-services parse-platform migration

我在AWS上遇到Parse Push问题。我们已根据这些specifications配置了适配器,并且似乎可以使用curl方法向一个特定用户(不知道该用户如何或为何使用)进行广播,但我很困惑如何(或者如果)我可以使用此命令将用户发送到用户推送通知。例如," X喜欢Y' Z"其中X是liker,Y是喜欢的,Z是喜欢的对象。

2 个答案:

答案 0 :(得分:0)

在解析中,您有多个选项来发送推送通知。 通过提供您希望将推送发送到的所有安装的查询,可以将推送通知发送给一个或多个用户。您还可以发送用户订阅的特定频道的推送通知,这非常适合营销,或者如果您的应用具有不同类型的用户(例如:卖家,买家等) 将推送发送到安装而不是用户的原因是因为一个用户可以进行多次安装(例如iphone,ipad,其他设备等)

就像我说有多个选项可以发送推送,但我建议使用以下方法之一发送推送:

  1. 从云代码 - 您可以创建将由客户端触发的云代码功能,此云代码功能将首先创建您需要发送推送的所有安装的查询,并将执行实际的功能发送推送。此云代码功能可以接收多个参数,这些参数可以包含在发送推送之前需要处理的任何数据,这些数据可以是用户数组,频道名称等。 以下云代码段显示如何为成功订阅并拥有设备令牌的所有用户发送推送:
  2. 
    
    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
           }
         ];
    
    1. 来自iOS SDK - 如果您不想从云代码发送推送,可以直接从iOS进行推送。我认为最好在云代码中执行此操作,因为在云代码中您可以编写代码,然后您可以从任何SDK以及REST API触发此功能。
    2. 在Parse文档中,您可以找到很多关于如何从iOS SDK发送推送的示例,所有示例都可以在这里找到:

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

      但就像我说的最好是用云代码来做。

答案 1 :(得分:0)

如果您使用没有Parse的AWS服务,答案就会类似。更好的架构是移动设备在云中调用业务逻辑(即,在AWS Lambda函数中)并且该代码发送推送通知。这使您可以构建更安全的解决方案,因为您可以控制内容并控制谁可以在您的业务逻辑中向谁发送(即,您必须在某人的朋友列表中发送)。如果您打开直接从设备发布的权限,那么您可以使系统容易受到攻击,即有人使用该应用的凭据并发布有害内容(可能是您应用的所有用户)。

从AWS Lambda函数发送推送通知的示例...
Can you send SNS push notification from lambda function in Amazon AWS?

此致
安德鲁C
AWS移动开发人员体验