基本的に、開始から始まり、質問相手が質問をやめるまで、「進行」のステップが繰り返さされる。
開始: ウェルカムメッセージ
↓
進行: 相手を次のステップに導く質問や回答。
↓
(ユーザからの応答)
↓
進行: 相手を次のステップに導く質問や回答。
基本的に、開始から始まり、質問相手が質問をやめるまで、「進行」のステップが繰り返さされる。
開始: ウェルカムメッセージ
↓
進行: 相手を次のステップに導く質問や回答。
↓
(ユーザからの応答)
↓
進行: 相手を次のステップに導く質問や回答。
文体といっても大したことではなく、Googleの指針に従うだけ。
最後の「キャラクター化しない」は難しいところ。無機質な方がよいのか、フレンドリーな方がよいのか。欧米では無機質なインターフェースの方がよいかもしれないが、日本ではキャラクター性を持たせるというのも在り。
Botは、チャットルーム内、もしくはBotにDM(ダイレクトメッセージ)を送信して、サービスを使用できるように会話型インターフェースを提供する。
Hangouts ChatのためのBotを作成すると、他のGoogleサービス、外部サービス等を会話型インターフェイスにカプセル化できる。
Hangouts Chatは、エンドポイント経由でBotと通信する。エンドポイントは以下の2種。
Botの応答は、テキストか、カードになる。カードは、「キー/値ペア」「イメージ」「アイコン」などの見た目にこった形式で応答できる。
Chat Botをデプロイするときに、「最新」の「Deployment ID」を指定している場合、GAS上でコードを書き換えて保存されたタイミングで、自動的に最新が公開される。
そのため、バージョン管理やテスト管理を行う場合には、デプロイするときに、公開バージョンを作成して、指定したほうがよい。
(Google ChatのChatbotの公開手順が変わっていた。新しく、手順を作ったので、そちらを参照してください。GASのGoogle ChatのChat Botを作成して公開する手順)
Google Apps Script を使ったHangouts ChatのChat Botの作成の流れをまとめる。
これでChat Botを無事に公開されている。Hangouts Chatから、Chat Botを呼び出して、動作確認する。
変数に文字列を格納する場合は、文字列をシングルクォーテーション(”)か、ダブルクォーテーション(“”)で囲む。
var userName = 'ダンボー' var userName = "ニャンボー"
改行やシングルクォーテーションなど、入力すると意味が変わってしまう文字は、バックスラッシュ(環境によっては円マークで表示)を使って表現する
\n = 改行 \r = 復帰(Carriage Return) \t = タブ \\ = バックスラッシュ \' = シングルクォーテーション \" = ダブルクォーテーション
■コンテンツアシスト
スクリプトエディタで、関数などの入力を補完するための機能がコンテンツアシスト。
空白行もしくは入力中に「Ctrl」+「Space」同時押しで、リストが表示される。
■単語補完機能
変数名や関数名の入力補助の機能。
入力中に、「Alt」+「/」の同時押し(Macは、「option」+「/」)で、変数や関数が保管される。
■インデントを揃える
インデントの自動整形機能があるので、インデントがわからなくなったときは活用する。
「Shift」+「Tab」でインデントを整形できる。
スクリプトの権限は、3つ。「オーナー」「編集者」「閲覧者」の3つ。「オーナー」と「編集者」の違いは、プロジェクトの公開をできるかできないかのみ。スクリプトの実行は「閲覧者」に指定されていないと、実行できない。
スクリプトのオーナー権限は、無料のGoogleアカウントや異なるドメイン間では譲渡できない。
キャメル記法は、単語を連結する場合に、2つ目以降の単語の頭文字を大文字にする記法。大文字の部分がラクダ(Camel)のコブのように見えるのが由来。
スネーク記法は、単語を連結する場合に、アンダースコア( _ )で連結する記法。
変数はキャメル記法、定数はスネーク記法が一般的。
GASは、Googleのサーバ上で実行されるため(クラウド上で実行されるため)、一部のユーザによって過負荷をかけられないようにスクリプトの実行に際して制限がある。
スクリプトの実行時間やメールの受信者数、カスタム関数実行時間などを制限するハード制限。スクリプトの実行中に制限を超えると、スクリプトはエラーで終了する。
ドキュメントの作成やカレンダーイベント作成など、一日あたりの実行回数を制限する容量制限。容量制限は、ユーザーごとにカウントされており、太平洋標準時(PST)の0時にリセットされる。だいたい日本だと、16時か17時で、サマータイムなどで変わる。
ハード制限の例
容量制限の例
GASの制限が書かれたページ
– https://developers.google.com/apps-script/guides/services/quotas