使用 webhook 或 Lambda 函数在 Amazon Pinpoint 中创建自定义频道 - Amazon Pinpoint

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 webhook 或 Lambda 函数在 Amazon Pinpoint 中创建自定义频道

Amazon Pinpoint 内置支持通过推送通知SMS、电子邮件和语音渠道发送消息。还可以通过创建自定义渠道将 Amazon Pinpoint 配置为通过其他渠道发送消息。Amazon Pinpoint 中的自定义渠道允许您通过任何具有的服务(包括第三方服务)发送消息。API您可以使用 webhook 或APIs通过调用 AWS Lambda 函数进行交互。

您向其发送自定义渠道广告系列的细分可以包含所有类型的终端节点(即ChannelType属性值为EMAIL、、VOICESMSCUSTOM、的终端节点或各种推送通知终端节点类型之一)。

使用 webhook

如果您使用 webhook 发送自定义频道消息,则 webhook URL 的消息必须以 “p https://". The webhook URL can only contain alphanumeric characters, plus the following symbols: hyphen (-), period (.), underscore (_), tilde (~), question mark (?), slash or solidus (/), pound or hash sign (#), and semicolon (:). The URL has to com ly with” 开头。RFC3986

当你创建指定网络挂钩的活动时,Amazon Pinpoint 会向该网络挂钩URL发出HTTPHEAD一个。URL对 HEAD 请求的响应必须包含名为 X-Amz-Pinpoint-AccountId 的标头。此标题的值必须等于您的 AWS 账户 ID。

使用 Lambda 函数

如果您选择通过创建 Lambda 函数来发送自定义渠道消息,则最好先熟悉 Amazon Pinpoint 发出的数据。当 Amazon Pinpoint 活动通过自定义渠道发送消息时,它会向目标 Lambda 函数发送类似于以下示例的负载:

{ "Message":{}, "Data":"The payload that's provided in the CustomMessage object in MessageConfiguration", "ApplicationId":"3a9b1f4e6c764ba7b031e7183example", "CampaignId":"13978104ce5d6017c72552257example", "TreatmentId":"0", "ActivityId":"575cb1929d5ba43e87e2478eeexample", "ScheduledTime":"2020-04-08T19:00:16.843Z", "Endpoints":{ "1dbcd396df28ac6cf8c1c2b7fexample":{ "ChannelType":"EMAIL", "Address":"mary.major@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "Location":{ "City":"Seattle", "Country":"USA" }, "Demographic":{ "Make":"OnePlus", "Platform":"android" }, "EffectiveDate":"2020-04-01T01:05:17.267Z", "Attributes":{ "CohortId":[ "42" ] }, "CreationDate":"2020-04-01T01:05:17.267Z" } } }

事件数据提供了以下属性:

  • ApplicationId – 活动所属的 Amazon Pinpoint 项目的 ID。

  • CampaignId – 调用 Lambda 函数的 Amazon Pinpoint 活动的 ID。

  • TreatmentId – 活动变体的 ID。如果您创建了标准活动,则此值始终为 0。如果您创建了 A/B 测试活动,则此值是介于 0 到 4 之间的整数。

  • ActivityId – 由活动执行的操作的 ID。

  • ScheduledTime— 亚马逊 Pinpoint 执行活动的时间,以 ISO 8601 格式显示。

  • Endpoints – 活动指向的端点列表。每个负载最多可包含 50 个端点。如果将活动发送到的分段包含的端点数超过 50 个,则 Amazon Pinpoint 将重复调用该函数,一次最多处理 50 个端点,直至处理完所有端点。

您可以在创建和测试自定义渠道 Lambda 函数时使用此示例数据。