Hangouts ChatのChat Botが送信するメッセージの形式は、JSONオブジェクト。JSONオブジェクトとして、送信することで、Chat API側でテキストメッセージやカード形式のメッセージに変換されて表示される。
月: 2018年5月
-
GASでの変数の宣言
GASでの変数の宣言は、JavaScriptと同じ。varキーワードを使う、型の宣言はいらない。
var 変数名;
定数の宣言
定数の宣言も、JavaScriptと同じ。constキーワードを使う、型の宣言はいらない。定数を使う場合は、constキーワードでの宣言と同時に値の代入を行う。
const 変数名 = 値;
定数の宣言と同時に値を代入するのは、定数への再代入(書き換え)はできないため。
-
April 2018 Updateで、Big-IP Edge ClientでのVPN接続に障害
Windows 10に、April 2018 Update(RS4)を当てたあとに、Big-IP Edge Clientをインストールしたら、VPN接続できなくなった。認証先への接続は出来ているようで、新しくVPN用のインターフェースをオープンできなくて、こけているような感じだ。Big-IPのサポートフォーラムでも、RS4で接続できない問題が載っていたので、たぶん同じ問題だろう。Big-IPクライアントを最新にすれば、回避できるようだ。
ただ、問題が発生しているのは、ソフトバンクのインターネットVPNサービスの環境のため、サービス側で新しいクライアントの配布を待たないといけなさそうだ。Windows 10の大型アップデートは鬼門だ。
余談だが、CiscoのAnyConnect Clientは、RS4でも問題なくVPN接続できている。
-
ゼルダの伝説 BREATH OF THE WILDクリアした。
ゴールデンウィークの課題と決めていたゼルダの伝説 BREATH OF THE WILDは、予定通りのスケジュールでクリアした。プレイ時間は、なんだかんだで長かった。50時間くらいだったかな。
クリアして、ストーリーを思い返してみると、メインクエスト系はそんなに長くなく、各々がいいストーリーだったと思う。100年前の惨劇の無念や思いが散りばめられていていい感じだ。ストーリーは、ほんとよかったし、楽しかった。まぁ、ややムカつく感じのスネ夫みたいなキャラもいたが、あれはあれでいいんじゃないかな。キャラに個性があるのはいいこと。ゼルダをちゃんとやったのは、初めてなのでなんともいえない部分はあるが、基本的にメインクエストを進めていっても、時は止まったまま、ラスボスが攻めてくるとか、世界が崩壊するとかはない。なので、リンクが使命を忘れて堕落した生活を送っていたとしても、世界は変わらない。よくもわるくも。そこの世界の動きがあったら、面白かったのかも、とか思う。
あと、個人的な感想ではあるが、ラスボスよりも、神獣についてるカースガノンの方が強かった気がする。足場が悪かったり、いろいろな制約があったり、それに比べたら、ラスボスの方が楽勝だった、時間はかかるけれど。それから、ラスボスよりも、イイガ団幹部と正面からやりあう方が厄介だった。まともにやりあうと、ちょっとした油断で即死させられるし、本当に厄介だった。
なんだかんだでゴールデンウィーク中、ずっとプレイしていた楽しいゲームでした。もうちょっと、未踏の地を旅したら、スプラトゥーン2に帰るとするかな。
-
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つの行動を促すフレーズに限定し、できるだけ関連性の高い情報を提示する。
- 何ができて、何ができないかを明確にする。
- キャラクター化しない(個性化しない)
最後の「キャラクター化しない」は難しいところ。無機質な方がよいのか、フレンドリーな方がよいのか。欧米では無機質なインターフェースの方がよいかもしれないが、日本ではキャラクター性を持たせるというのも在り。


