Apps Script で初めての Google ハングアウト chatbot を作成
Google Cloud Japan Team
※この投稿は米国時間 2020 年 4 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。
利用できるアプローチとテクノロジーをすべて駆使して chatbot を作れるようになるのは、非常に難しいことと思えるかもしれません。同じように、Google ハングアウト chatbot の作成でも、サーバー アーキテクチャや技術実装のほか、プログラミング言語について早期の意思決定が求められる可能性があります。たとえば、Google ハングアウト chatbot の作成には多種多様なテクノロジーを使用できます。ごく一部ですが例を挙げると、Cloud Functions、HTTP ウェブサービス、Cloud Pub/Sub、Webhook などがあります。
Google ハングアウトの bot 作成をまだ学び始めたばかりのユーザーの場合は、「ローコード」の Google Apps Script 環境を使用して、簡単に作成を開始できます。また、Apps Script は G Suite とネイティブに統合されているため(認証も含めて)、Google ハングアウトで G Suite 中心の chatbot を作成する際には、最も実用的な選択となるでしょう。
ここでは、Apps Script を使用して初めて Google ハングアウト chatbot を作成する手順をご紹介します。
Apps Script とは
Apps Script は、クラウドベースのスクリプト言語であり、JavaScript に基づいたランタイム環境です。豊富なサービスのライブラリから、さまざまな Google プロダクトと API にコードで直接アクセスできます。
Apps Script では合理的な「ローコード」のアプローチを採用しているため、通常は G Suite プロダクト(Google スプレッドシート、ドキュメント、スライド、ドライブ、Gmail)の機能拡張に使われます。たとえば、Apps Script でメール送信に使用するコードは、以下のようにシンプルです。
また、Apps Script のコード開発はすべてブラウザで行うことができるため、ローカルにソフトウェア開発環境をインストールする必要がありません(Apps Script の詳細は、こちらの Apps Script の概要をご覧ください)。
前提条件
手順を開始する前に、次の要件を満たしていることを確認してください。
Google Cloud Platform(GCP)でプロジェクトを作成できる。
Apps Script や JavaScript に関する基本的な知識がある。
G Suite 管理者の権限を持っている(ドメイン全体の公開に必要です。ただし、このチュートリアルで説明する簡単なテストに G Suite 管理者の権限は必要ありません)。
これで準備が整いました。次に、Apps Script で chatbot を作成してテストする基本的な手順をご紹介します。
ステップ 1: Apps Script プロジェクトの作成と構成
script.google.com にアクセスし、[プロジェクトを作成] ボタンをクリックします。プロジェクト名を「Hello ChatBot」にして、[保存] をクリックします。
Chat のプロジェクトを構成するには:
Apps Script プロジェクトのマニフェスト ファイルにアクセスします。[表示] > [マニフェスト ファイルを表示]
マニフェスト ファイル appsscript.json がスクリプト エディタで開きます。このファイルをカスタマイズできます。
このプロジェクトにチャット機能を追加するには、マニフェストに ”chat”: { } と追加するだけです。例:
プロジェクトを保存します。
Code.gs ファイルで、次の関数を追加して受信チャット メッセージを処理します。
プロジェクトを保存します。
chatbot を動かすのに必要な Apps Script コードはこれだけです。
ステップ 2: Deployment ID の保存
次のステップでは、bot の Apps Script プロジェクトを GCP プロジェクトに関連付けます。そのために、Apps Script プロジェクトのDeployment ID を取得して保存し、後で GCP プロジェクトを構成するときに使用します。
Deployment ID をマニフェストから取得するには:
[公開] -> [マニフェストから配置]
[Deployments] ダイアログ ボックスで、[Latest Version (HEAD)] の横に表示される [Get ID] をクリックします。
[Deployment ID] ダイアログ ボックスで、Deployment ID として表示された文字列をコピーします。Deployment ID の例: AKfycbyS1N2v-_ZVNldWGBuY4azxodbOE06PTJGXKBU9hV3m
後から使えるようにDeployment ID をコピーして保存します。
[閉じる] をクリックし、さらに [Close] をクリックしてダイアログ ボックスを閉じます。
ステップ 3: GCP プロジェクトの作成と構成
ここでは GCP プロジェクトを作成して構成し、chatbot のバックエンドとして機能できるようにします。
新しい GCP プロジェクトを作成するには:
https://console.cloud.google.com にアクセスし、[新しいプロジェクト] をクリックしてプロジェクトを作成します(「My First Chatbot」と名前を付けます)。
関連付けられた請求先アカウントを選択します。
[組織] と [場所] はデフォルト値をそのまま使用します。
[作成] をクリックして、コンソールで新しいプロジェクトを選択します。
次に、プロジェクトで Chat API を有効にする必要があります。
メイン GCP ダッシュボードから、[API の概要に移動] をクリックして、[API とサービス] ダッシュボードを開きます。
次をクリックします。
「Hangouts Chat API」を検索します。
見つかったら、[有効にする] をクリックします。
有効にしたら、左側に表示される [認証情報] をクリックします。
認証情報の画面で、[+ 認証情報を作成] をクリックして、[サービス アカウント] を選択します。
サービス アカウント名には、「My First ChatBot Service Account」と入力します。アカウント ID が自動的に生成されます(my-first-chat-bot-service-accou)。
必要に応じて、サービス アカウントの説明も入力できます。
[作成] をクリックします。
アカウントを作成した後に、[サービス アカウントの権限] セクションを探します。[ロール] のプルダウン メニューで、[Project] > [オーナー] を選択します。
[続行]、[完了] の順にクリックします。
最後に、Chat API を構成する必要があります。左のメニューから [設定] をクリックして、次のオプションを追加します。
ボット名:「My First Bot」と入力します。
アバターの URL:
https://www.gstatic.com/images/branding/product/1x/chat_48dp.png
(一般公開できる自分の画像を使用することもできます)説明:「A simple first Hello Bot」
機能: [ボットはダイレクト メッセージ内で機能します] を選択します。
接続設定: [Apps Script project] を選択して、項目に Apps Script プロジェクトのDeployment ID を貼り付けます。
[権限] で、[ドメイン内の特定のユーザーとグループ] を選択して、自分のメールを入力します(G Suite ドメイン内から)。次に、[保存] をクリックします。[保存] ボタンは保存した後もアクティブな状態のままですが、ページ上部の [bot のステータス] が [ライブ - ユーザーが利用可能] に変わります。
ステップ 4: 新しい bot のテスト
新しいブラウザ ウィンドウで、前のステップで chatbot ユーザーとして指定したユーザーを使い、同じドメインで chat.google.com を開きます。
[bot] の横に表示される [+] をクリックして新しい bot を追加します。作成した新しい bot を検索します。
見つかったら、[追加](および [メッセージ])をクリックして、新しい bot でチャットのセッションを開始します。
「Hello!」と入力して返事を確認します。
追加のステップです。ここまでで、作成した bot が動くようになりました。Apps Script コードに戻って、メッセージをフランス語に翻訳するようにコードを変更してみましょう。
ヒント: LanguageApp.translate(event.message.text,'en','fr') を使います。プロジェクトを保存すると、最新のコードを使って bot をすぐにテストできることがわかります。
次回は chatbot の例をご紹介
近日中に、chatbot を API やサービスと連動させる例や Google AI ML プラットフォームを活用する例など、chatbot でできることの興味深い例を投稿する予定です。それまでの間は、こちらの最近のブログ投稿で、Hangouts Chat に作成された bot の例をご覧ください。
-By Christian Schalk, Google Cloud Developer Advocate