设置你的合作伙伴账号

注册成为 RCS for Business 合作伙伴后,您将拥有一个合作伙伴账号。如需访问合作伙伴账号设置,请打开 RCS for Business 开发者控制台 ,然后点击 合作伙伴账号设置。您可以在这里执行以下操作:

更新合作伙伴账号信息

设置 页面中,您可以查看合作伙伴 ID 并更新以下信息:

字段 说明
合作伙伴名称 您的合作伙伴账号的名称
显示名称 此名称将显示在运营商收到的 结算报告中(作为 owner_name 字段)。运营商将使用此名称来识别您是否为可信合作伙伴 并生成正确的结算信息,以便您使用 RCS for Business 与其订阅者互动。您在此处提供的名称应与运营商消息传递合同中使用的名称一致。
技术联系人

如果您的代理出现任何技术问题,Google 将联系此人。您可以更新此人的

  • 姓名
  • 公司电子邮件地址
  • 电话号码
网络钩子 这是您的网络钩子端点网址。点击配置 即可更新此网址。 配置合作伙伴网络钩子后,此网络钩子将应用于您的所有代理。如果您想为单个代理使用其他网络钩子,可以配置仅适用于该代理的代理网络钩子。

管理品牌

作为 RCS for Business 合作伙伴,您可以代表品牌创建代理。

您可以使用“账号设置”中的品牌 页面来添加、修改和移除与您的合作伙伴账号相关联的品牌。

添加品牌

如需添加品牌,请在输入字段中输入品牌名称,然后点击添加

修改品牌

如需修改品牌,请执行以下操作:

  1. 点击品牌名称旁边的复选框。
  2. 点击 按钮,然后点击 修改名称
  3. 进行修改,然后点击完成

移除品牌

如果品牌与代理相关联,则无法移除该品牌,即使代理未发布也是如此。

如需移除品牌,请点击品牌名称旁边的复选框,然后点击删除

管理用户

您可以在账号设置中的用户页面中管理合作伙伴账号的用户。创建合作伙伴账号的用户拥有所有者角色。新用户可以拥有管理员或读者角色。

  • 管理员 可以访问开发者控制台的所有功能,以管理属于合作伙伴账号的任何代理。
  • 读者 拥有对开发者控制台的只读权限,可以查看属于合作伙伴账号的任何代理。

添加用户

如需添加用户,请在输入字段中输入用户的电子邮件地址,然后选择用户的角色

添加新用户后,新用户会收到一封电子邮件,通知他们有权访问合作伙伴账号。

移除用户

如需移除用户,请执行以下操作:

  1. 找到要移除的用户,然后点击其表格行中的 按钮。
  2. 选择移除用户
  3. 确认移除。

您移除的用户会收到一封电子邮件,通知他们已无权访问合作伙伴账号。

您无法移除拥有所有者角色的用户。如需更改或移除所有者,您 需要与支持团队联系。

更改用户的角色

如需更新用户的角色,请执行以下操作:

  1. 找到要更新的用户,然后点击其表格行中的 按钮。
  2. 选择修改角色
  3. 从下拉列表中选择一个新角色。
  4. 点击保存

设置服务账号以对 API 调用进行身份验证

调用 RBM API 时, 您需要使用服务账号密钥对调用进行身份验证。借助此密钥,您可以创建和管理品牌及代理,并以代理身份发送消息和请求。 一个服务账号最多可以有 10 个密钥。

如需安全地对 API 调用进行身份验证,您还需要 oauth2l 命令行工具。

请按照以下步骤生成服务账号密钥:

  1. 账号设置中, 前往服务账号页面。
  2. 依次点击创建密钥创建 。您的浏览器会下载该服务账号密钥。

请将服务账号密钥存储在安全、私密的位置。请勿公开分享您的密钥。您稍后需要使用此密钥来访问 RBM API。

配置合作伙伴网络钩子

如需了解如何配置合作伙伴网络钩子,请参阅 网络钩子 指南。

如需了解如何异步处理网络钩子以防止传送 失败,请参阅消息处理

验证收到的消息

由于网络钩子可以接收来自任何发送者的消息,因此您应先验证收到的消息是否由 Google 发送,然后再处理消息内容。

如需验证您收到的消息是否由 Google 发送,请按以下步骤操作:

  1. 提取消息的 X-Goog-Signature 标头。这是消息正文载荷的哈希值,并采用 base64 编码。
  2. 对请求的 message.body 元素中的 RBM 载荷进行 Base-64 解码。
  3. 使用网络钩子的客户端令牌(您在设置网络钩子时指定)作为密钥,为 Base-64 解码的消息载荷的字节创建 SHA512 HMAC,并对结果进行 base64 编码。
  4. 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
    const headerHash = req.header('X-Goog-Signature');
    const userEventString = Buffer.from(requestBody.message.data, 'base64');
    const hmac = crypto.createHmac('sha512', myClientToken);
    const genHash = hmac.update(userEventString).digest('base64');

    if (headerHash === genHash) {
      const userEvent = JSON.parse(userEventString);
      const webhookType = req.header('X-Goog-Webhook-Type');

      // Route based on the header type
      if (webhookType === 'message_callback') {
        handleMessage(userEvent);
      } else if (webhookType === 'agent_callback') {
        handleAgentEvent(userEvent);
      }
    } else {
      console.log('Hash mismatch - ignoring message');
      res.sendStatus(401);
      return;
    }
  }

  res.sendStatus(200);
  

后续步骤

现在,您的合作伙伴账号已设置完毕,接下来可以 创建您的第一个代理了