【问题标题】:Migrating Parse Push to AWS将 Parse Push 迁移到 AWS
【发布时间】:2021-04-12 16:46:12
【问题描述】:

我在 AWS 上遇到 Parse Push 问题。我们根据这些specifications 配置了适配器,并且似乎可以使用 curl 方法向一个特定用户(不知道该用户如何或为什么)广播,但我很困惑如何(或是否)我可以使用它来发送用户到用户推送通知。例如,“X 喜欢 Y 的 Z”,其中 X 是喜欢的对象,Y 是喜欢的对象,Z 是被喜欢的对象。

【问题讨论】:

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


    【解决方案1】:

    在解析中,您有多个发送推送通知的选项。 推送通知可以发送给一个或多个用户,方法是提供一个包含您希望向其发送推送的所有安装的查询。您还可以为用户订阅的特定频道发送推送通知,这对营销非常有用,或者如果您的应用程序有不同类型的用户(例如:卖家、买家等) 推送被发送到安装而不是用户的原因是因为一个用户可以有多个安装(例如 iphone、ipad、其他设备等)

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

    1. 从云代码 - 您可以创建将由客户端触发的云代码函数,此云代码函数将首先创建您需要发送推送到的所有安装的查询,并将执行实际将发送推送。这个云代码函数可以接收多个参数,这些参数可以包含您发送推送之前需要处理的任何数据,这些数据可以是用户数组、频道名称等。 以下云代码 sn-ps 展示了如何为所有成功订阅并拥有设备令牌的用户发送推送:

    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 触发此功能。

    在 Parse 文档中,您可以找到很多关于如何从 iOS SDK 发送推送的示例,所有示例都可以在这里找到:

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

    但就像我说的那样,最好的办法是使用云代码。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢安德鲁 C!并感谢您的链接...它非常稀疏,只是确认它是可能的...您是否会碰巧有更多关于此的信息或是否更新了 Lambda 文档以包含有关客户端到客户端推送的更多信息?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2022-01-01
      • 2017-04-16
      相关资源
      最近更新 更多