注册成为 RCS 商业合作伙伴后,您将拥有一个合作伙伴账号。如需访问合作伙伴账号设置,请打开 Business Communications 开发者控制台,然后点击合作伙伴账号设置。在此页面中,您可以执行以下操作:
更新合作伙伴账号信息
在设置页面中,您可以查看合作伙伴 ID 并更新以下信息:
字段 | 说明 |
---|---|
合作伙伴名称 | 合作伙伴账号名称 |
显示名称 | 名称将显示在运营商收到的
结算报告中(作为 owner_name 字段)。运营商会使用此信息将您识别为可信的合作伙伴,并生成正确的账单信息,以便您使用 RCS 商务版与他们的订阅者联系。您在此处提供的名称应与运营商消息传递合同中使用的名称一致。 |
技术联系人 | 如果代理出现任何技术问题,Google 将联系此人。您可以更新其
|
网络钩子 | 这是您的网络钩子端点网址。点击配置以更新该设置。 配置合作伙伴网络钩子后,该钩子会应用于您的所有代理。如果您想为单个代理使用其他 webhook,可以配置仅适用于该代理的代理 webhook。 |
管理品牌
作为 RCS 商务合作伙伴,您可以代表品牌创建代理。
您可以在账号设置中使用品牌页面来添加、修改和移除与合作伙伴账号相关联的品牌。
添加品牌
如要添加品牌,请在输入字段中输入品牌名称,然后点击添加。
修改品牌
如需修改品牌,请执行以下操作:
- 点击品牌名称旁边的复选框。
- 点击 按钮,然后点击修改名称。
- 完成修改后,点击完成。
移除品牌
如果品牌与代理相关联,即使代理未发布,也无法移除该品牌。
如需移除品牌,请点击品牌名称旁边的复选框,然后点击删除。
管理用户
您可以在账号设置中的用户页面上管理合作伙伴账号的用户。创建合作伙伴账号的用户具有“所有者”角色。新用户可以担任“经理”或“读者”角色。
- 管理者可以访问开发者控制台的所有功能,以管理合作伙伴账号中的所有代理。
- 读取者拥有对开发者控制台的只读权限,可以查看合作伙伴账号所属的任何代理。
添加用户
如需添加用户,请在输入字段中输入其电子邮件地址,然后选择其角色。
添加新用户后,系统会向其发送电子邮件,告知其已获得合作伙伴账号的访问权限。
移除用户
如需移除用户,请执行以下操作:
- 找到您要移除的用户,然后点击其表格行中的 按钮。
- 选择移除用户。
- 确认移除。
您移除的用户会收到一封电子邮件,通知其不再有权访问合作伙伴账号。
您无法移除具有“所有者”角色的用户。如需更改或移除所有者,您需要与支持团队联系。
更改用户的角色
如需更新用户的角色,请执行以下操作:
- 找到要更新的用户,然后点击其表格行中的 按钮。
- 选择修改角色。
- 从下拉菜单中选择新角色。
- 点击保存。
设置服务账号以对 API 调用进行身份验证
调用 RBM API 时,您需要使用服务账号密钥对调用进行身份验证。借助此密钥,您可以创建和管理品牌和代理,并以代理身份发送消息和请求。 一个服务账号最多可以有 10 个密钥。
为了安全地对 API 调用进行身份验证,您还需要 oauth2l 命令行工具。
按照以下步骤生成服务账号密钥:
- 在账号设置中,前往服务账号页面。
- 点击创建密钥,然后点击创建。您的浏览器会下载该服务账号密钥。
将服务账号密钥存储在安全私密的位置。请勿公开分享您的密钥。您稍后需要使用此密钥来访问 RBM API。
配置合作伙伴网络钩子
Webhook 是合作伙伴创建的 HTTPS 回调,用于指定代理应如何响应消息和事件。配置好 Webhook 后,您就可以开始接收消息和事件了。
如果您想为任何代理使用其他 webhook,可以设置代理级 webhook,该 webhook 将覆盖合作伙伴 webhook。如需了解详情,请参阅配置代理 Webhook。
如需配置合作伙伴网络钩子,请按以下步骤操作:
打开 Business Communications 开发者控制台,然后使用您的 RCS for Business 合作伙伴 Google 账号登录。
打开账号设置。
对于 RCS Business Messaging 网络钩子网址,请点击配置。
在网络钩子端点网址部分,输入 webhook 网址,以“https://”开头。
记下您的
clientToken
值。您需要使用它来验证您收到的消息是否来自 Google。将 webhook 配置为接受具有指定
clientToken
参数的POST
请求,并发送包含secret
参数的纯文本值作为响应正文的200 OK
响应。例如,如果您的 webhook 收到具有以下正文内容的
POST
请求{ "clientToken":"SJENCPGJESMGUFPY", "secret":"1234567890" }
然后,您的 webhook 应确认
clientToken
值,如果clientToken
正确无误,则返回200 OK
响应,并将1234567890
作为响应正文:// clientToken from Configure const myClientToken = "SJENCPGJESMGUFPY"; // Example endpoint app.post("/rbm-webhook", (req, res) => { const msg = req.body; if (msg.clientToken === myClientToken) { res.status(200).send(msg.secret); return; } res.send(400); });
在开发者控制台中,点击验证。RCS 商家版验证您的 webhook 后,对话框将关闭。
如需有关异步处理 Webhook 以防止传送失败的指南,请参阅消息处理。
验证收到的消息
由于 Webhook 可以接收来自任何发件人的消息,因此您应先验证传入的消息是否由 Google 发送,然后再处理消息内容。
如需验证您收到的消息是否由 Google 发送,请按以下步骤操作:
- 提取消息的
X-Goog-Signature
标头。这是消息正文载荷的哈希 base64 编码副本。 - 对请求的
message.body
元素中的 RBM 载荷进行 Base64 解码。 - 使用您的 Webhook 的客户端令牌(您在设置 Webhook 时指定)作为密钥,创建经过 base-64 解码的消息载荷字节的 SHA512 HMAC,并对结果进行 base64 编码。
- 将
X-Goog-Signature
哈希与您创建的哈希进行比较。- 如果哈希值一致,则表示您已确认该消息是由 Google 发送的。
如果哈希值不一致,请针对已知良好的消息检查哈希处理流程。
如果您的哈希处理流程正常运行,但您收到了疑似欺诈性消息,请与我们联系。
Node.js
if ((requestBody.hasOwnProperty('message')) && (requestBody.message.hasOwnProperty('data'))) { // Validate the received hash to ensure the message came from Google RBM let userEventString = Buffer.from(requestBody.message.data, 'base64'); let hmac = crypto.createHmac('sha512', CLIENT_TOKEN); let data = hmac.update(userEventString); let genHash = data.digest('base64'); let headerHash = req.header('X-Goog-Signature'); if (headerHash === genHash) { let userEvent = JSON.parse(userEventString); console.log('userEventString: ' + userEventString); handleMessage(userEvent); } else { console.log('hash mismatch - ignoring message'); } } res.sendStatus(200);
后续步骤
现在,您的合作伙伴账号已设置完毕,接下来可以构建您的第一个代理了。