设置你的合作伙伴账号

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

更新合作伙伴账号信息

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

字段 说明
合作伙伴名称 您的合作伙伴账号的名称
显示名称 名称将显示在运营商收到的 RBM 结算报告中(作为 owner_name 字段)。运营商会使用此信息来确认您是可信的合作伙伴,并确保他们为您使用 RBM 来覆盖其订阅者而生成正确的结算信息。您在此处提供的名称应与运营商短信合同中使用的名称一致。
技术联系人

如果代理出现了任何技术问题,Google 应该联系的对象。您可以更新其

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

管理品牌

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

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

添加品牌

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

修改品牌

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

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

移除品牌

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

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

管理用户

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

  • 经理可以使用 Play 管理中心的所有功能,管理合作伙伴账号中的所有代理。
  • 读者对开发者控制台拥有只读权限,可以查看合作伙伴账号中的所有客服助理。

添加用户

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

您添加新用户后,系统会向该用户发送电子邮件,告知他们有权访问合作伙伴账号。

移除用户

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

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

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

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

更改用户的角色

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

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

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

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

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

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

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

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

配置合作伙伴 Webhook

Webhook 是合作伙伴创建的 HTTPS 回调,用于指定您的客服人员应如何响应消息和事件。配置 Webhook 后,您就可以开始接收消息事件了。

如果您想为任何代理使用其他 webhook,可以设置代理级 webhook,以覆盖合作伙伴 webhook。如需了解详情,请参阅配置代理 webhook

如需配置合作伙伴网络钩子,请按以下步骤操作:

  1. 打开 Business Communications 开发者控制台,然后使用您的 RBM 合作伙伴 Google 账号登录。

  2. 打开账号设置

  3. 对于 RCS Business Messaging Webhook 网址,请点击配置

  4. 网络钩子端点网址部分,输入以“https://”开头的 webhook 网址。

  5. 记下您的 clientToken 值。您需要使用它来验证您收到的消息是否来自 Google

  6. 将 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);
    });
    
  7. 在 Play 管理中心内,点击验证。RBM 验证您的 webhook 后,对话框将关闭。

如需了解如何处理 webhook 传送失败问题并确保可靠地处理消息,请参阅消息处理

验证收到的消息

由于 webhook 可以接收来自任何发件人的邮件,因此您应先验证 Google 是否发送了传入邮件,然后再处理邮件内容。

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

  1. 提取邮件的 X-Goog-Signature 标头。这是消息正文载荷经过哈希处理且采用 base64 编码的副本。
  2. 对请求的 message.body 元素中的 RBM 载荷进行 Base-64 解码。
  3. 使用 webhook 的客户端令牌(您在设置 webhook 时指定的)作为密钥,为 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
    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);
  

后续步骤

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