恵比寿ボイスプロダクションのGoogle Homeアプリの開発では、 Go言語(Golang)とConversation webhookを使っています。 Conversation webhookのrequestをparseすることは、 json tagを使うことで手間はかかるもののすぐに実現できました。
parseしたrequestの構造体にアクセスするためにメソッドを定義しておくと便利です。 まず、よく使うのはintentです。このメソッドは次のように定義されています。
見ての通りinputsが一つの場合しか対応していません。 万が一、複数のinputsが見たい場合は、メソッドを使わずに直接アクセスできますが、 今のところそのようなケースは見たことがありません。
もう一つ、よく使うのはqueryです。
これは、ユーザが発話したテキストです。
actions.intent.TEXT
の場合に使います。
こちらもよく使うユースケースに限定して メソッドが定義 されています。
これらは一例ですが、基本的なものですので、頻繁に使っています。
ちなみに、Actions on Google Client Library
では、app.intent()
を使ってハンドラーを登録する書き方が一般的ですが、
Actions SDKの場合はintent数が少ないこともあり、あまり必要性を感じていません。