

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

# 为移动聊天启用推送通知
<a name="enable-push-notifications-for-mobile-chat"></a>

移动聊天的推送通知是通过 [AWS End User Messaging](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) 配置的。您可以在 iOS 或 Android 设备上为移动聊天启用推送通知，这样即使客户没有主动使用您的移动应用程序，您也可以提醒他们注意新消息。您可以在与[Connect Customer 移动设备 SDKs](https://docs.aws.amazon.com/connect/latest/adminguide/integrate-chat-with-mobile.html)、[Webview 解决方案或自定义原生解决方案](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples)集成的现有应用程序中启用此功能。

 以下步骤和资源将帮助您开始将 Connect Customer 推送通知集成到原生移动应用程序中：

## 第 1 步：从苹果 APNs 和谷歌的 FCM 控制台获取凭证
<a name="step-1-enable-push-notifications-for-mobile-chat"></a>

要进行设置 Connect Customer 使其能够向您的应用程序发送推送通知，您首先必须从 Apple APNs 和 Google 的 FCM 控制台获取凭据，以便[AWS 最终用户消息](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)将通知发送到您的移动应用程序。您提供的凭证取决于您使用的推送通知系统：
+  有关 Apple 推送通知服务 (APNs) 凭据，请参阅 Apple 开发者文档中的 “[从 Apple 获取加密密钥和密钥 ID](https://developer.apple.com/documentation/usernotifications/establishing-a-token-based-connection-to-apns#Obtain-an-encryption-key-and-key-ID-from-Apple)[” 和 “从 Apple 获取提供商证书](https://developer.apple.com/documentation/usernotifications/establishing-a-certificate-based-connection-to-apns#Obtain-a-provider-certificate-from-Apple)”。
+  对于可以通过 Firebase 控制台获取的 Google 的 Firebase Cloud Messaging（FCM）凭证，请参阅 [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging)。

## 步骤 2：使用 AWS 控制台创建AWS 最终用户消息服务应用程序并启用 FCM 的推送通知渠道或 APNs
<a name="step-2-enable-push-notifications-for-mobile-chat"></a>

 在您能够启用 Amazon Connect 发送推送通知之前，首先必须在 [AWS 控制台](https://console.aws.amazon.com/push-notifications/)中[创建AWS End User Messaging 应用程序并启用推送通知](https://docs.aws.amazon.com/push-notifications/latest/userguide/procedure-enable-push.html)渠道。

 按照以下说明创建应用程序并启用任何推送渠道。要完成此过程，您只需输入应用程序名称即可。您可以稍后启用或禁用任何推送渠道：

1.  打开 “ AWS 最终用户消息推送” 控制台，网址为 [https://console.aws.amazon.com/push-notifications/](https://console.aws.amazon.com/push-notifications/) 

1.  选择**创建应用程序**。

1.  在**应用程序名称**中，输入您的应用程序名称。

1.  （可选）按照此可选步骤启用 **Apple 推送通知服务（APNs）**。

   1.  对于 **Apple 推送通知服务 (APNs)**，请选择 “**启用**”。

   1.  对于**默认身份验证类型**，选择以下任一选项：

      1.  如果您选择**密钥凭证**，请提供您的 Apple 开发者帐户中的以下信息。 AWS 最终用户消息推送需要这些信息来构造身份验证令牌。

         1.  **密钥 ID** – 分配给您的签名密钥的 ID。

         1.  **捆绑包标识符** – 分配给您的 iOS 应用程序的 ID。

         1.  **团队标识符** – 分配给您的 Apple 开发人员账户团队的 ID。

         1.  **身份验证密钥** – 当您创建身份验证密钥时从您的 Apple 开发人员账户下载的 .p8 文件。

      1.  如果您选择**证书凭证**，请提供以下信息：

         1.  **SSL 证书** – 您的 TLS 证书的 .p12 文件。

         1.  **证书密码** – 如果您向证书分配了密码，请在此处输入。

         1.  **证书类型** - 选择要使用的证书类型。

1.  （可选）按照此可选步骤启用 **Firebase Cloud Messaging（FCM）**。

   1.  对于 **Firebase Cloud Messaging（FCM）**，选择**启用**。

   1.  对于**默认身份验证类型**，选择**令牌凭证**，然后选择您的服务 JSON 文件。

1.  选择**创建应用程序**。

## 步骤 3：将 AWS 最终用户消息应用程序与 Connect Customer 实例关联
<a name="step-3-enable-push-notifications-for-mobile-chat"></a>

 要在[Connect Customer 实例](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html)上启用推送通知，您需要通过调用 [CreateIntegrationAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)API 将 AWS 最终用户消息应用程序与[Connect Customer 实例](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html)关联起来`PINPOINT_APP`[IntegrationType](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html#API_CreateIntegrationAssociation_RequestSyntax)。对于任何支持的语言，您可以使用 [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/connect/create-integration-association.html) 或 [Amazon Connect SDK](https://aws.amazon.com/developer/tools/) 调用此 API。这是 AWS 最终用户消息应用程序和 Connect Customer 实例之间的每次集成都需要一次性入门步骤。

## 第 4 步：使用 FCM 或 APNs SDK 获取设备令牌，然后将其注册到 Connect Customer
<a name="step-4-enable-push-notifications-for-mobile-chat"></a>

您需要获取设备令牌，并使用它向 Connect Customer 聊天联系人注册最终用户移动设备，以便在聊天中发送新消息的推送通知。 阅读以下 FCM/APNs 开发者文档，了解如何从移动应用程序生成和获取设备令牌。
+  有关 Apple 推送通知服务 (APN)，请参阅 Apple 开发者文档 APNs中的[注册应用程序](https://developer.apple.com/documentation/usernotifications/registering-your-app-with-apns)。
+  有关 Firebase Cloud Messaging（FCM），请参阅 [FCM 注册令牌管理的最佳实践](https://firebase.google.com/docs/cloud-messaging/manage-tokens)。

 要向聊天联系注册设备，建议您执行以下操作：

1.  当移动应用程序调用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 时，将`deviceToken`和`deviceType`作为[联系人属性](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)传递。对于 WebView 和托管通信小部件用户，请参阅[如何将联系属性传递到通信小部件](https://docs.aws.amazon.com/connect/latest/adminguide/pass-contact-attributes-chat.html#how-to-contact-attributes-chatwidget)以了解更多详细信息。

1.  在联系流的 Lambda 函数中嵌入[CreatePushNotificationRegistration](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreatePushNotificationRegistration.html)操作调用。该流数据块应从用户定义的联系属性中读取 `deviceToken` 和 `deviceType`，从系统属性中读取 `initialContactId`，然后将这些值传递给 Lambda 函数。

   1.  根据您的使用案例，如果您希望最终用户立即接收推送通知，请在开始聊天后（在流开始时）立即放置 Lambda 函数，或者在将联系人路由到队列之前放置 Lambda 函数，以便他们仅在座席即将加入时才接收联系人。API 调用完成后，当座席或系统发出新消息时，设备将开始接收推送通知。默认情况下，将为所有系统和座席消息发送推送通知。  
![在 Connect Customer 管理员网站流设计器中调用 Lambda 函数流数据块。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/step-4-set-up-push-notifications-for-mobile-chat-1.png)

1.  （可选）在流程的 Lambda 函数中嵌入对[DeletePushNotificationRegistration](https://docs.aws.amazon.com/connect/latest/APIReference/API_DeletePushNotificationRegistration.html)操作的调用。API 调用完成后，当座席或系统发出新消息时，设备将停止接收推送通知。

## 第 5 步：在移动应用程序上接收推送通知
<a name="step-5-enable-push-notifications-for-mobile-chat"></a>

 请查看我们的[Connect Customer 聊天界面示例](https://github.com/amazon-connect/amazon-connect-chat-ui-examples)项目，并参阅我们的 [iOS](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/iOS-WKWebView-sample) 和 [Android](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/android-webview-sample) 聊天网络视图示例，这些示例展示了如何集成 Connect Customer APIs 到加入和接收推送通知。

## 监控推送通知的使用情况
<a name="monitor-your-usage-for-push-notification"></a>

 为了确保推送通知的可靠性、可用性和性能，监控推送通知的使用情况至关重要。您可以通过多种渠道跟踪这些信息：

1.  AWS 为推送通知提供全面的监控工具。 有关更多信息，请参阅[监控 AWS 最终用户消息推送](https://docs.aws.amazon.com/push-notifications/latest/userguide/monitoring-overview.html)。

1.  根据您使用的推送通知服务，您可以通过相应的控制台访问其他使用情况数据。

   1.  Firebase Cloud Messaging（FCM）：请查阅 FCM 文档中的[了解消息传送](https://firebase.google.com/docs/cloud-messaging/understand-delivery?platform=android)部分，以了解您的 FCM 使用情况。

   1.  Apple 推送通知服务 (APNs)：查看有关[使用指标查看推送通知状态的 APNs文档部分 APNs，并](https://developer.apple.com/documentation/usernotifications/viewing-the-status-of-push-notifications-using-metrics-and-apns)监控您的通知状态。