本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon Connect 中启用实时聊天消息直播
Amazon Connect Chat 提供的APIs功能使您能够订阅聊天消息的实时流。使用这些APIs,您可以:
-
在创建新的聊天联系人时,实时流式传输聊天消息。
-
扩展当前的 Amazon Connect Chat 功能以支持使用案例,例如构建与SMS解决方案和第三方消息应用程序的集成、启用移动推送通知以及创建分析仪表板以监控和跟踪聊天消息活动。
消息流APIs的工作原理
当 Amazon Connect 聊天联系APIs人中发生某些事件时,就会触发 Amazon Connect 消息流。例如,当客户发送新的聊天消息时,该事件会向指定端点发送一个有效负载,其中包含有关刚刚发送的消息的数据。使用亚马逊简单通知服务 (Amaz onSNS) 将消息发布到特定终端节点。
本主题介绍如何使用 Amazon Connect 和亚马逊设置实时消息流SNS。步骤如下:
-
使用 Amazon SNS 控制台创建新的标准SNS主题并设置消息。
-
致电StartChatContactAPI以启动聊天联系人。
-
致电StartContactStreamingAPI启动消息直播。
-
致电CreateParticipantConnectionAPI以创建参与者的连接。
步骤 1:创建标准SNS主题
-
前往 Amazon SNS 控制台。
-
在您的 AWS 账户中@@ 创建SNS主题。在详细信息部分的类型中,选择标准,输入主题名称,然后选择创建主题。
注意
当前,消息流APIs仅支持消息实时流的标准SNS。他们不支持 Amazon SNSFIFO(先入先出)话题。
-
创建主题后,其亚马逊资源名称 (ARN) 将显示在详细信息部分。将主题复制ARN到剪贴板。您将在下一步和ARN中使用该主题第 3 步:对联系人启用消息流。
该主题与以下示例类ARN似:
arn:aws:sns:
us-east-1
:123456789012
:MyTopic
-
选择 “访问策略” 选项卡,选择 “编辑”,然后针对该SNS主题添加基于资源的策略,以便 Amazon Connect 有权发布该主题。以下是SNS策略示例,您可以将其复制并粘贴到JSON编辑器中,然后使用您的值进行自定义:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"connect.amazonaws.com" }, "Action":"sns:Publish", "Resource":"
YOUR_SNS_TOPIC_ARN
", "Condition":{ "StringEquals":{ "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID
" }, "ArnEquals":{ "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN
" } } } ] }注意
默认访问策略附带适用于
sourceOwner
的条件,例如:"Condition": { "StringEquals": { "AWS:SourceOwner": "921772911154" } }
请务必将其移除并替换为
SourceAccount
,例如:"Condition":{ "StringEquals":{ "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN" } }
这样可以防止出现跨服务混淆座席的问题。
-
如果您在上使用服务器端加密SNS,请确认您已在上 KMS key启用
connect.amazonaws.com
权限。以下是策略示例:{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
your_accountId
:root", "Service": "connect.amazonaws.com" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your_accountId
:root", "Service": "connect.amazonaws.com" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" } ] }
第 2 步:启用聊天联系人
-
致电 Amazon Connect StartChatContactAPI发起聊天联系。
有关如何创建用于调用 Amazon Connect 的SDK客户端的信息APIs,请参阅以下主题:
-
跟踪StartChatContact响应,因为这些响应属性用于呼叫启用直播APIs所需的其他聊天。
ContactId
ParticipantToken
这将在接下来的步骤中进行说明。
第 3 步:对联系人启用消息流
-
致电StartContactStreaming以启用实时消息流式传输到您的SNS主题。
-
限制:每个联系人最多可以订阅两个SNS主题。
-
致电时 StartContactStreaming,您需要提供该SNS主题的 Amazon 资源名称 (ARN)(请参阅步骤 1:创建标准SNS主题)。
一个SNS主题ARN可以跨多个主题使用 AWS 账户,但它必须与您的 Amazon Connect 实例位于同一区域。例如,如果您的主题在 us-ea st-1 中,则您ARN的 Amazon Connect 实例必须在 us-east-1 中。
-
对于直播终端节点上未收到的初始聊天消息,您可以调用GetTranscriptAPI以接收初始消息。
-
第 4 步:创建参与者连接
-
CreateParticipantConnection使用传递
ConnectParticipant
为 true 的属性进行调用。-
您必须在创建聊天CreateParticipantConnection后的五分钟内致电。
-
只有在第 2 步:启用聊天联系人您启用了直播功能CreateParticipantConnection且来电者参与者启用时,才可以在
ConnectParticipant
设置为 true 的情况下进行通话Customer
。 -
如果您已经使用
WEBSOCKET
成功连接到聊天联系人,则此步骤(创建参与者连接)为可选。
-
后续步骤
你已经准备好处理消息流APIs了。
-
要验证它是否正常工作,请检查消息是否已发布到您创建的SNS主题中。您可以使用 Amazon CloudWatch 指标来做到这一点。有关说明,请参阅使用监控亚马逊SNS主题 CloudWatch。
-
由于保留期SNS有限
,我们建议您设置亚马逊简单队列服务 (亚马逊SQS) 、A mazon Kinesis 或其他服务来保留消息。 -
使用StopContactStreaming是可选的,如果聊天通过联系流断开连接,或者客户断开了聊天,则不需要使用。但是,即使聊天处于活动状态且正在进行中,也
StopContactStreaming
提供了停止有关该SNS主题的消息流的选项。