本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
RCS 入门
本指南将引导您完成在 “ AWS 最终用户消息” 中设置第一个 RCS 代理,以及发送和接收第一条 RCS 消息的过程。最后,您将拥有一个正常运行的 RCS 测试环境。预计完成时间:15—30 分钟。
以下是本指南涵盖的内容:
创建 AWS RCS 代理并提交测试注册
添加测试设备并接受测试人员邀请
发送您的第一条出站 RCS 消息
使用关键字测试入站(双向)消息
有关 RCS 在 AWS 最终用户消息传递中的工作原理,包括两级身份模型(AWS RCS 代理和企业 IDs版 RCS)的背景信息,请参阅。什么是 RCS?
设置和测试 RCS
本节将指导您完成创建 AWS RCS 代理、注册测试设备、发送第一条 RCS 消息以及验证传送的过程。完成这些步骤后,您可以继续在生产国家/地区启动 RCS。
先决条件
在开始之前,请确保您具有以下各项:
-
具有 AWS 最终用户消息访问权限的 AWS 帐户-您需要一个有权使用 AWS 最终用户消息的帐户。 AWS 如果您没有账户,请参阅AWS 账户设置指南。
-
启用了 RCS 的手机 — 你需要一部在默认消息应用程序中启用 RCS 消息功能的 Android 手机,或者一部运行 iOS 18 或更高版本的 iPhone。此电话可用作接收 RCS 消息的测试设备。
-
(可选)已配置 AWS CLI — 如果您想使用 API 而不是控制台进行测试,请安装和配置 AWS CLI 或使用 AWS 软件开发工具包,例如适用于 Python 的 boto3。
步骤 1:创建您的 AWS RCS 代理并提交测试注册
第一步是创建 AWS RCS 代理并提交测试注册。测试注册会创建一个 RCS for Business ID(测试代理),您无需运营商批准即可使用它向注册的测试设备发送消息。
有关 AWS RCS 代理管理的完整详细信息,包括代理生命周期和 API 操作,请参阅管理 RCS 代理。
创建 AWS RCS 代理(控制台)
创建 AWS RCS 代理并提交测试注册
-
在导航窗格的配置下,选择 RCS 代理。
-
选择创建 RCS 代理。这将创建 AWS RCS 代理,然后立即指导您在单个工作流程中创建测试注册。
-
下一个屏幕显示了 RCS 的简介并解释了设置过程。查看信息,然后选择 “下一步” 继续。
-
在代理详细信息页面上,设置以下内容:
-
友好名称 — AWS RCS 代理专用的控制台标签。这是供您参考的内部名称(存储为标签),不是收件人电话上显示的名称。该友好名称无法通过 API 获得。
-
删除保护-(可选)启用以防止意外删除代理。
-
标签-(可选)添加标签以组织和识别您的代理。
-
-
在同一页面的品牌信息部分,输入以下内容:
-
显示名称-收件人在 RCS 消息旁边看到的品牌名称。
-
描述 — 对您的品牌或业务的简要描述。
-
用例-选择 RCS 消息的主要用例(例如,交易通知、营销或客户支持)。
-
-
在同一页面的品牌资产部分,上传以下内容:
-
徽标 — 224 × 224 像素,带透明度的 PNG,小于 50 KB。
-
横幅图片 — 1440 × 448 像素,PNG 或 JPEG,低于 200 KB。
-
品牌颜色 — 一种十六进制颜色代码(例如
#1A73E8),与白色背景的最小对比度为 4. 5:1。
重要
代理商提交注册后,某些品牌资产无法更改。在创建代理之前,请准备好最终的品牌资产。如果您想先进行实验,则可以使用此流程快速创建测试代理,然后使用最终确定的品牌资产创建一个全新 AWS RCS 代理。
-
-
在合规性关键词页面上,配置您的关键字和自动回复消息。
-
在 “查看” 页面上,验证您的所有设置。
-
选择 “验证并提交” 以创建 AWS RCS 代理并提交测试注册。
注意
您已成功创建 AWS RCS 代理并提交了测试注册。您的测试代理通常会在几分钟内获得批准。现在,让我们启用发送到您的设备的测试消息。
创建 AWS RCS 代理 (CLI)
您也可以使用 C AWS LI 创建 AWS RCS 代理。首先,创建代理,然后提交测试注册。
步骤 1:创建 AWS RCS 代理:
aws pinpoint-sms-voice-v2 create-rcs-agent \ --deletion-protection-enabled
步骤 2:为代理提交测试登记。使用注册类型的 CreateRegistration API 进行 RCS 测试。在提交之前,您可以使用 DescribeRegistrationFieldDefinitions API 以编程方式检索所有可用的注册表单字段。在注册表字段中提供您的品牌资产、描述和联系方式。
有关注册 API 的详细信息,请参阅管理 RCS 代理。
步骤 2:添加测试设备
在您的测试注册获得批准后,将您的手机添加为测试设备,这样您就可以收到来自测试代理的 RCS 消息。
注意
添加测试设备后,不会立即发送测试人员邀请。系统会将激活延迟至少 120 秒,最长可能需要 20 分钟才能收到邀请。控制台显示大概的激活时间。您无需等待即可添加设备,系统会自动处理延迟。
添加测试设备后,“ AWS 最终用户消息” 会向该电话号码发送测试人员邀请。邀请来自名为 R BM Tester Management 的 R CS 代理,其中包含两个接受或拒绝的按钮:“让我成为测试者” 和 “拒绝”。收件人必须点击 “让我成为测试员” 才能完成验证。
注意
在 iOS 设备(搭载 iOS 18 或更高版本的 iPhone)上,测试者邀请可能出现在消息应用程序的 “未知发件人” 文件夹中,而不是主收件箱中。如果您没有看到邀请,请查看 “未知发件人” 文件夹。
有关管理测试设备(包括 API 方法和故障排除)的更多详细信息,请参阅测试 RCS 消息。
第 3 步:发送您的第一条 RCS 消息
在您的测试设备接受测试人员邀请后,您可以发送第一条 RCS 消息。您可以使用 AWS 最终用户消息控制台或 API。
步骤 4:测试入站(双向)消息
您可以通过配置具有自动响应功能的关键字,然后从测试设备发送与该关键字匹配的消息来测试入站 RCS 消息。
使用自动回复关键字测试入站消息
-
在 AWS 最终用户消息控制台中,导航到您的 AWS RCS 代理并配置关键字。例如,
RCSINBOUNDTESTING使用自动回复消息来设置关键字,例如 “入站测试成功!您的留言已收到。” -
在测试选项卡上,选择入站深度链接。
-
在默认消息正文字段中,输入您配置的关键字(例如,
RCSINBOUNDTESTING)。 -
选择 “生成链接”。控制台使用 GSMA 标准 URI 方案生成入站深度链接
sms:URL。此深度链接嵌入在屏幕上显示的二维码中。 -
使用经过验证的测试人员手机扫描二维码。这将打开原生消息应用程序,其中包含一条预先填充的消息,发送给您的 AWS RCS 代理。
-
从您的测试设备发送消息。
-
验证您的测试设备上是否收到了自动回复消息。
测试自动回复关键词不需要设置活动目标或 Amazon SNS 主题。根据您的 AWS RCS 代理上的关键字配置,自动回复完全由 AWS 最终用户消息处理。
要接收和处理任意入站消息(而不仅仅是关键词匹配),您需要为双向消息配置一个 Amazon SNS 主题。有关更多信息,请参阅 接收入站 RCS 消息。
你完成了什么
完成本指南中的步骤后,您将获得:
-
使用您的品牌资产创建了 AWS RCS 代理并提交了测试注册
-
注册了测试设备并接受了测试人员邀请
-
已发送您的第一条 RCS 消息并已验证送达
-
使用自动回复关键字测试了入站消息
您的测试环境现已准备就绪。以下是将 RCS 消息集成到您的应用程序中或微调 RCS 消息传递工作方式的方法:
-
接收和处理入站消息:配置 Amazon SNS 主题以接收入站 RCS 消息并使用 Lambda 函数对其进行处理。请参阅接收入站 RCS 消息。
-
跟踪传送事件:设置配置集以在您选择的事件目的地中使用精细的送达收据 (DLRs) 和其他消息事件。请参阅RCS CloudWatch 指标和监控。
-
启用短信回退:使用您的 AWS RCS 代理和 SMS 电话号码创建电话池,以便在无法传送 RCS 时自动回退到短信。请参阅使用电话池的 RCS 到 SMS 回退。
-
在生产国家/ 地区发射:提交国家/地区发布登记,向美国和加拿大的所有收件人发送 RCS 消息。请参阅在各国推出 RCS。
AI 代理提示设置 RCS
如果您使用生成式 AI 编码助手或 AI 代理,则可以使用以下提示获取有关创建 AWS RCS 代理、提交测试注册以及使用 AWS CLI 发送第一条测试消息的帮助。
注意
复制以下提示并将其粘贴到您的 AI 代理或编码助手中:
## RCS Setup Assistant Prompt Help me set up RCS messaging in AWS End User Messaging using the AWS CLI. The service is `pinpoint-sms-voice-v2`. Walk me through each step with exact CLI commands. Ask me for all required details before generating any commands. **Important rules for generating commands:** - All commands use the `pinpoint-sms-voice-v2` service. - Use `create-rcs-agent` exactly as spelled — NOT `create-r-c-s-agent`. - Use the term "testing" — NOT "sandbox". - There is NO `describe-messages` API. Do not generate it. - `create-rcs-agent` does NOT accept brand asset parameters (no display name, no logo, no banner, no color). Brand assets are registration fields only. - `create-verified-destination-number` uses `--rcs-agent-id`, NOT `--origination-identity`. ### Step 1: Create an RCS Agent Use `create-rcs-agent`. This creates the agent resource only. Optional parameters: `--deletion-protection-enabled`, `--opt-out-list-name`, `--tags`. The response returns `RcsAgentId` and `RcsAgentArn` — save both. ### Step 2: Create and submit a testing registration This configures brand assets and submits for approval. It requires multiple API calls in sequence: a. `create-registration --registration-type TEST_RCS_LAUNCH_REGISTRATION` → returns `RegistrationId`. Save it. b. `create-registration-association --registration-id <id> --resource-id <agent-id>` → links the registration to the agent. c. Upload images as attachments (two calls): `create-registration-attachment --attachment-body fileb://<logo-path>` `create-registration-attachment --attachment-body fileb://<banner-path>` → each returns `RegistrationAttachmentId`. Save both. d. Set ALL required registration fields using `put-registration-field-value` with `--registration-id`, `--field-path`, and the appropriate value flag (`--text-value`, `--select-choices`, or `--registration-attachment-id`). Required fields (ALL must be set or registration will be DENIED): - `agentDetails.brandName` (text, 2-65 chars) - `agentDetails.serviceName` (text, 1-100 chars) - `agentDetails.senderDisplayName` (text, 1-40 chars) - `agentDetails.useCase` (select: OTP, TRANSACTIONAL, PROMOTIONAL, MULTI_USE) - `agentDetails.agentDescription` (text, 1-100 chars) - `agentDetails.logoImage` (attachment ID from step c, 224x224 PNG) - `agentDetails.bannerImage` (attachment ID from step c, 1440x448 PNG/JPEG) - `agentDetails.accentColor` (text, hex code e.g. #0066CC) - `agentDetails.privacyPolicyUrl` (text, valid URL) - `agentDetails.termsAndConditionsUrl` (text, valid URL) - `agentDetails.averageMonthlyRcsFrequency` (select: 10, 100, 1000+) - `agentDetails.monthlyRcsVolume` (text, 1-100000) - At least ONE contact method WITH its label: agentDetails.contactWebsite + agentDetails.contactWebsiteLabel, OR agentDetails.contactPhoneNumber + agentDetails.contactPhoneLabel, OR agentDetails.contactEmailAddress + agentDetails.contactEmailLabel e. Verify all fields: `describe-registration-field-values --registration-id <id>` Any field showing `DeniedReason: MISSING_REQUIRED_FIELD` must be set. f. Submit: `submit-registration-version --registration-id <id>` g. Poll status: `describe-registrations --registration-ids <id>` Wait for `RegistrationStatus: COMPLETE`. **Error recovery:** If registration is DENIED, you must: 1. `create-registration-version --registration-id <id>` (creates new draft) 2. Re-populate ALL fields from scratch (new versions do NOT inherit values) 3. Fix the issue noted in `DeniedReasons` 4. Re-submit ### Step 3: Add a test device **Prerequisite:** Step 2 must be COMPLETE and the agent's `TestingAgent.Status` must be `ACTIVE` (check with `describe-rcs-agents`). Then wait at least 120 seconds after the agent becomes ACTIVE. Use `create-verified-destination-number --destination-phone-number <E.164> --rcs-agent-id <agent-id>`. The device status will be `PENDING`. The user must accept the RCS tester invitation on their physical device. Check status with `describe-verified-destination-numbers` — wait for `VERIFIED`. ### Step 4: Send a test RCS message **Prerequisite:** Step 3 device must be `VERIFIED`. Use `send-text-message --destination-phone-number <E.164> --origination-identity <agent-arn> --message-body "<text>" --message-type TRANSACTIONAL`. Returns `MessageId`. ### Step 5: Verify delivery For testing: check the test device — the message appears from the branded RCS agent. For production monitoring: set up event destinations BEFORE sending messages using `create-event-destination` (SNS, CloudWatch Logs, or Firehose). Event destinations do not retroactively capture events for already-sent messages. CloudWatch metrics in the `AWS/SMSVoice` namespace provide aggregate stats. --- **Before generating commands, ask me for:** - Brand name, service name, and sender display name - Agent description (what the agent does, what messages users receive) - Use case type: OTP, TRANSACTIONAL, PROMOTIONAL, or MULTI_USE - Logo file path (224x224 PNG) and banner file path (1440x448 PNG/JPEG) - Brand accent color hex code (e.g. #0066CC) - Privacy policy URL and terms & conditions URL - One contact method with label: website URL, phone number, or email - Estimated monthly RCS volume and per-user message frequency - Test device phone number in E.164 format (e.g. +12065550100)