パートナー アカウントを設定する

RBM パートナーとして登録すると、パートナー アカウントが作成されます。パートナー アカウントの設定にアクセスするには、Business Communications デベロッパー コンソールを開き、[パートナー アカウントの設定] をクリックします。ここでは次の操作を行えます。

パートナー アカウント情報を更新する

[設定] ページでパートナー ID を確認し、次の情報を更新できます。

項目 説明
パートナー名 パートナー アカウントの名前
表示名 この名前は、携帯通信会社が受信する RBM 請求レポートowner_name フィールドとして表示されます。携帯通信会社はこの情報を使用して、貴社を信頼できるパートナーであると識別し、RBM を使用して定期購読者にリーチするための正しい請求書を生成するために使用されます。ここで指定する名前は、携帯通信会社のメッセージ契約で使用されている名前と一致する必要があります。
技術関連の連絡窓口

エージェントで技術的な問題が発生した場合に Google から連絡がある相手。会話の相手を

  • Name
  • 会社のメールアドレス
  • 電話番号
Webhook これは Webhook エンドポイント URL です。[**設定**] をクリックして更新します。 パートナー Webhook を構成すると、すべてのエージェントに適用されます。個々のエージェントに別の Webhook を使用する場合は、そのエージェントにのみ適用されるエージェント Webhook を構成できます。

ブランドを管理する

RBM パートナーは、ブランドを代表してエージェントを作成できます。

パートナー アカウントに関連付けられているブランドを追加、編集、削除するには、[アカウント設定] の [ブランド] ページを使用します。

ブランドを追加

ブランドを追加するには、入力フィールドにブランド名を入力し、[追加] をクリックします。

ブランドを編集する

ブランドを編集するには:

  1. ブランド名の横にあるチェックボックスをオンにします。
  2. [] ボタンをクリックし、[名前を編集] をクリックします。
  3. 編集を行い、[完了] をクリックします。

ブランドを削除する

ブランドがエージェントに関連付けられている場合は、エージェントが起動されていなくても削除できません。

ブランドを削除するには、ブランド名の横にあるチェックボックスをオンにして、[削除] をクリックします。

ユーザーの管理

[アカウント設定] の [ユーザー] ページでは、パートナー アカウントのユーザーを管理します。パートナー アカウントを作成したユーザーにはオーナーのロールが付与されています。新規ユーザーには、マネージャーまたは閲覧者のロールを割り当てることができます。

  • 管理者は、Developer Console のすべての機能にアクセスして、パートナー アカウントに属するすべてのエージェントを管理できます。
  • 閲覧者は、デベロッパー コンソールへの読み取り専用アクセス権を持ち、パートナー アカウントに属するすべてのエージェントを確認できます。

ユーザーを追加する

ユーザーを追加するには、入力フィールドにメールアドレスを入力し、[ロール] を選択します。

新しいユーザーを追加すると、パートナー アカウントへのアクセス権があることを知らせるメールがそのユーザーに送信されます。

ユーザーを削除する

ユーザーを削除するには:

  1. 削除するユーザーを見つけて、そのテーブルの行にある ボタンをクリックします。
  2. [ユーザーを削除] を選択します。
  3. 削除を確定します。

削除されたユーザーには、パートナー アカウントにアクセスできなくなったことを通知するメールが届きます。

オーナーのロールを持つユーザーは削除できません。オーナーを変更または削除するには、サポートにご連絡ください。

ユーザーのロールを変更する

ユーザーの役割を更新するには:

  1. 更新するユーザーを見つけて、そのテーブルの行の ボタンをクリックします。
  2. [ロールを編集] を選択します。
  3. プルダウンから新しいロールを選択します。
  4. [保存] をクリックします。

API 呼び出しを認証するためのサービス アカウントを設定する

RBM API を呼び出す場合は、サービス アカウント キーで呼び出しの認証を行います。このキーを使用すると、ブランドとエージェントを作成および管理し、エージェントとしてメッセージとリクエストを送信できます。

サービス アカウント キーを生成する手順は次のとおりです。

  1. [アカウント設定] で、[サービス アカウント] ページに移動します。
  2. [鍵を作成]、[作成] の順にクリックします。ブラウザでサービス アカウント キーがダウンロードされます。

サービス アカウント キーを安全なプライベート ロケーションに保存します。鍵は公開しないでください。このキーは、後で RBM API にアクセスする際に必要になります。

パートナー Webhook を構成する

Webhook はパートナーが作成した HTTPS コールバックで、エージェントがメッセージとイベントに応答する方法を指定します。Webhook を構成したら、メッセージイベントの受信を開始できます。

パートナー Webhook を構成する手順は次のとおりです。

  1. ビジネス コミュニケーションのデベロッパー コンソールを開き、RBM パートナーの Google アカウントでログインします。

  2. [アカウント設定] を開きます。

  3. [RCS Business Messaging の Webhook URL] で [設定] をクリックします。

  4. [Webhook エンドポイント URL] に、「https://」で始まる Webhook URL を入力します。

  5. clientToken の値をメモします。これは、受信したメッセージが Google から送信されていることを確認するために必要です。

  6. 指定された clientToken パラメータを含む POST リクエストを受け入れ、レスポンス本文として secret パラメータの書式なしテキスト値を含む 200 OK レスポンスを送信するように、Webhook を構成します。

    たとえば、Webhook が次のような本文を含む POST リクエストを受け取ったとします。

    {
      "clientToken":"SJENCPGJESMGUFPY",
      "secret":"1234567890"
    }
    

    この場合、Webhook は clientToken 値を確認し、clientToken が正しい場合は、1234567890 をレスポンス本文とする 200 OK レスポンスを返します。

    // 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 Console で [確認] をクリックします。RBM が Webhook を検証すると、ダイアログが閉じます。

受信メールを確認する

Webhook はどの送信者からでもメッセージを受信できるため、メッセージの内容を処理する前に、Google が着信メッセージを送信したことを確認する必要があります。

受信したメッセージが Google から送信されたことを確認する手順は次のとおりです。

  1. メッセージの X-Goog-Signature ヘッダーを抽出します。これは、メッセージ本文のペイロードのハッシュされ、base64 でエンコードされたコピーです。
  2. リクエストの message.body 要素内の RBM ペイロードを Base64 でデコードします。
  3. Webhook のクライアント トークン(Webhook の設定時に指定したもの)をキーとして使用し、base-64 でデコードされたメッセージ ペイロードのバイトの SHA512 HMAC を作成し、結果を base64 でエンコードします。
  4. X-Goog-Signature ハッシュと作成したハッシュを比較します。
    • ハッシュが一致した場合、Google がメッセージを送信したことが確認されています。
    • ハッシュが一致しない場合は、既知の正常なメッセージのハッシュ化プロセスを確認します。

      ハッシュ化プロセスが正常に機能し、不正に送信されたと思われるメッセージを受け取った場合は、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);
  

次のステップ

パートナー アカウントの設定が完了したので、最初のエージェントを構築します。