プログラミングが不要なGoogle Homeアプリ制作サービス「RINDO」(ベータ版)を無料提供中!
Ebisu Voice Production Logo
開発ブログ

Go言語でconversation webhookのrequestをparseする

Daishi Kato
2018年07月17日

恵比寿ボイスプロダクションでGoogle Homeアプリを開発する際に Go言語(Golang)を使っていると紹介しましたが、 実はそれほど難しいことをやっているわけではなく、 conversation webhookのrequestさえparseできれば良いのです。

requestの構造体は、下記のように定義されています。

type AppRequest struct {
        User              *User         `json:"user"`
        Device            *Device       `json:"device"`
        Surface           *Surface      `json:"surface"`
        Conversation      *Conversation `json:"conversation"`
        Inputs            []Input       `json:"inputs"`
        IsInSandbox       bool          `json:"isInSandbox"`
        AvailableSurfaces []Surface     `json:"availableSurfaces"`
}

このようにjson tagがついているため、json.Unmarshal でparseすることができます。

具体的な例は、テストコード で参照することができます。 (こちらはjson.NewDecoder使ってました。)

上記のAppRequestにあるUser, Device, ...も全て定義してあります。 プロトコル仕様が変わると追従しないといけないので、それだけが悩みどころです。

恵比寿ボイスプロダクション
github icontwitter icon
Home
開発コンサル
RINDO
About Us
お問い合わせ
Privacy Policy