カテゴリー: HangoutsChat

  • Hangouts Chat からBOXを使う(BOXのチャットボットを使う)

    2018年5月の中頃から、BOXとHangouts Chatが連携するようになった。連携といっても、チャットボット経由。

    boxのチャットボットでできることは、今のところ限定的。

    • boxアカウントとHangouts Chatを接続するためにログインする
    • ヘルプの表示
    • 最新のファイルリストを表示する
    • box上で登録したお気に入りのファイルやフォルダを表示する

    使い方

    ◆ チャットルームにボットを追加する

    1. Hangouts Chatから、「ユーザー、チャットルーム、botを検索」で「box」を検索する。
      もしくは、既存のチャットルームから「box」を検索して招待する。
    2. チャットルームに、BOXのボットが追加される。

    ◆ BOXのボットにヘルプを表示させる

    1. チャットのメッセージで「help」を送信する。
    2. ボットからメッセージがヘルプの内容が返信される。
    Hello @マイアカウント! Box Bot makes it easy to view and share the files you’ve recently worked on or favorited.
    Connect your Box account with Hangouts Chat to get started.
    
    Type "login" to connect your Box account with Hangouts Chat
    Type "recents" to view a list of your recent files
    Type "favorites" to view a list of your favorite files and folders
    Type "help" to see available commands.
    

    ◆ Hangouts Chatからboxにログインする

    1. チャットのメッセージで「login」を送信する。
    2. ボットから「LOG IN TO BOX」が返ってくるので、リンクをクリックして、boxにログインする。

    loginのメッセージを打たなくても、他のメッセージを送ったときに、ログインしていない場合にはログインのメッセージが表示される。

    ◆ 最新のファイルリストを表示する

    1. チャットのメッセージで「recents」を送信する
    2. ボットから最新のファイルリストが送信されてくる。リストはリンクになっているので、クリックすればファイルが開く。

    ◆ お気に入りのファイルを表示する

    1. チャットのメッセージで「favorites」を送信する
    2. ボットからお気に入りのファイルリストが送信されてくる。リストはリンクになっているので、クリックすればファイルが開く。
    Sorry, it looks like you don’t have any favorites files or folders in associated Box account xxx@xxx.xxx.xxx. Learn how to set favorites in Box here: https://community.box.com/t5/Box-User-Training-Videos/Setting-Favorites-for-Files-Tutorial/ta-p/33598
    
  • Hangouts ChatのChat Botからカード型で返信を返す方法

    Hangouts ChatのChat Botからのメッセージは、JSONオブジェクトで内容を記述して返す。

    ポイントは、onMessage() で返す(return)内容を返すときに、return { “cards”: [ ここにJSON ]}; の形式で記述すること。

    とくに、cardsのあとの[]の中にJSONオブジェクトでプロパティを記述することが重要。

    サンプル

    ユーザからのメッセージが届いたら、カード型メッセージで返信を返す。

    /**
     * Responds to a MESSAGE event in Hangouts Chat.
     *
     * @param {Object} event the event object from Hangouts Chat
     *
     */
    function onMessage(event) {
    
      return {
    
        "cards": [
          {
            "header": {
              "title": "タイトル(カード型のメッセージを返信する)",
              "subtitle": "サブタイトル(画像も表示させてみる)",
              "imageUrl": "https://goo.gl/yKKjbw",
              "imageStyle": "IMAGE"
            }
          }
        ]
      };
    
    }
    
  • Hangouts ChatのChat Botがメッセージを送るときの形式

    Hangouts ChatのChat Botが送信するメッセージの形式は、JSONオブジェクト。JSONオブジェクトとして、送信することで、Chat API側でテキストメッセージやカード形式のメッセージに変換されて表示される。

  • Chat Botとメッセージのやり取りをしているときに発生しているイベント

    Hangouts Chatで、GASで作ったChat Botと会話するとき、Chat BotのGASプログラム側では”onMessage(event)”関数が呼び出されている。この関数の中で、ユーザからの送られてきたテキストの中身を処理することで、ユーザと様々なやり取りをすることができる。

    function onMessage(event) {
      return { "text": "このメッセージをチャットで返す" };
    }
    

    ちなみに、ユーザ側が入力した内容は、`event.message.text`で取得することができる。

  • Hangouts ChatでChat Botを呼び出したときに発生するイベント

    Hangouts Chatで、GASで作ったChat Botを呼び出すとき、関数のonAddToSpace(event)がHangouts Chat APIから呼び出される。このイベントが発生するのは、Chat Botを追加したときのみ。

    function onAddToSpace(event) {
      return { "text": "このメッセージを返す" };
    }
    

    ■Googleのサンプルプログラム。

    function onAddToSpace(event) {
      var message = "";
    
      if (event.space.type == "DM") {
        message = "Thank you for adding me to a DM, " + event.user.displayName + "!";
      } else {
        message = "Thank you for adding me to " + event.space.displayName;
      }
    
      return { "text": message };
    }
    

    eventは、オブジェクトで、Hangouts Chatから渡される。このオブジェクトの中に、ユーザ名やDMかどうかなどの情報が入っている。

    returnで指定した内容がユーザのチャットに返信される。

  • Chat Botのライフサイクル

    基本的に、開始から始まり、質問相手が質問をやめるまで、「進行」のステップが繰り返さされる。

    開始: ウェルカムメッセージ

    進行: 相手を次のステップに導く質問や回答。

    (ユーザからの応答)

    進行: 相手を次のステップに導く質問や回答。

  • Chat Botの文体

    文体といっても大したことではなく、Googleの指針に従うだけ。

    • 文章は簡単にする
    • 1つの行動を促すフレーズに限定し、できるだけ関連性の高い情報を提示する。
    • 何ができて、何ができないかを明確にする。
    • キャラクター化しない(個性化しない)

    最後の「キャラクター化しない」は難しいところ。無機質な方がよいのか、フレンドリーな方がよいのか。欧米では無機質なインターフェースの方がよいかもしれないが、日本ではキャラクター性を持たせるというのも在り。

  • Hangouts ChatのChat Botについて

    Botは、チャットルーム内、もしくはBotにDM(ダイレクトメッセージ)を送信して、サービスを使用できるように会話型インターフェースを提供する。

    Hangouts ChatのためのBotを作成すると、他のGoogleサービス、外部サービス等を会話型インターフェイスにカプセル化できる。

    Hangouts Chatは、エンドポイント経由でBotと通信する。エンドポイントは以下の2種。

    • HTTP(Webサービス)エンドポイント
    • クラウドPub/Subエンドポイント

    Botの応答は、テキストか、カードになる。カードは、「キー/値ペア」「イメージ」「アイコン」などの見た目にこった形式で応答できる。

  • Chat Botの公開バージョンの注意点

    Chat Botをデプロイするときに、「最新」の「Deployment ID」を指定している場合、GAS上でコードを書き換えて保存されたタイミングで、自動的に最新が公開される。

    そのため、バージョン管理やテスト管理を行う場合には、デプロイするときに、公開バージョンを作成して、指定したほうがよい。

  • GASでHangouts ChatのChat Botを作成して公開する手順

    (Google ChatのChatbotの公開手順が変わっていた。新しく、手順を作ったので、そちらを参照してください。GASのGoogle ChatのChat Botを作成して公開する手順

    Google Apps Script を使ったHangouts ChatのChat Botの作成の流れをまとめる。

    作成フェーズ

    1. Chat Bot のサンプルプロジェクトのファイルを開く
    2. プロジェクト名をつけて保存する
    3. GASのコードを書く

    デプロイ

    1. GASのスクリプトエディタで、「公開」→「マニフェストから配置」の順にクリックする。
    2. どのバージョンをデプロイするのかを聞かれるので、「最新」を選び「Get ID」をクリックする。
    3. 表示された「Deployment ID」の値をコピーする。
    4. 「Close」をクリックして閉じる。
    5. GASのスクリプトエディタで「リソース」→「Cloud Platformプロジェクト」をクリックする。
    6. 「このスクリプトが現在関連付けられているプロジェクト」の下のリンクをクリックする。
    7. ”Google Cloud Platform”の画面が開く。
    8. 左サイドメニューから「APIサービス」→「ダッシュボード」をクリックする。
    9. 「+APIとサービスの有効化」をクリックする。
    10. ”Hangouts Chat API” を検索し、結果から”Hangouts Chat API”を選択する。
    11. 「有効にする」をクリックする。
    12. ダッシュボードのAPIの”Hangouts Chat API” のギアマークをクリックする(設定を開く)。
    13. ボット名を入力する、アバターのURLに表示させる画像のURLを入力する。
    14. 画像URLは、入力しないとエラーになるので、指定がなければ、Googleの画像を指定するとよい。’https://goo.gl/yKKjbw’
    15. 機能で「ボットはルーム内で機能します」「ボットはダイレクトメッセージ内で機能します」を用途に合わせて選択する。
    16. 接続設定で「Apps Script Project」を選択し、上記で取得しておいた”デプロイID”を入力する。
    17. 権限で「インストールできるユーザ」を指定する。
    18. 「設定を保存する」をクリックする。

    これでChat Botを無事に公開されている。Hangouts Chatから、Chat Botを呼び出して、動作確認する。