Edited at

ActionsSDKでのNewSurfaceでの注意点

More than 1 year has passed since last update.

こんにちは。

GoogleHomeとの会話中にスマートフォンに通知を投げることができ、さらに続けてスマートフォン上でのやりとりを行うことができます。

これはMulti Surface conversationsという機能らしいです。

以前は英語圏のみでしか動作しませんでしたが、SDKv2より🎉日本でも動作するようになりました。🎉

こんな感じです。

例えば、「ネットのURLをスマートフォンに送信したい」等の場合に便利かなと思います。

主たる関数はNewSurfaceというものですが、これを使った場合シミュレーター実行時などでハマりポイントがいくつかありましたので、情報共有します。


公式


  • ドキュメント

https://developers.google.com/actions/assistant/surface-capabilities#multi-surface_conversations


  • API Reference

https://actions-on-google.github.io/actions-on-google-nodejs/classes/conversation_question.newsurface.html

dialogflow版サンプルも載っており結構見やすいです。


注意点など


  • NewSurfaceを含めた複数conv.askは動作しない

    SDKのv2より、複数のconv.askで発話できるようなりましたが、複数の中にNewSurfaceを入れたものがあると正常に動作しなくなるようです。((Chainの巻き上げが正常に行われない?))

    メールサポートによると、やはりだめのようで、単発conv.askが推奨されました。

    引数のobject型のcontextにて発話内容を表現してくださいとのこと。

    独自の複数askを用いた会話ビルドツール等を作ってる方は注意してください。


  • 日本語ロケール(JP)でのsimulatorが何となく動いてしまって良くない

    英語ロケールでsimulatorを動かすと、対応していない的な表示になります。

    一方日本語ロケールだとエラーもなく、何となく動いてしまうんですが、実際にはどうにも挙動が変です。(conv.askの中身が発話されないなど)

    テストする場合は実機を用いると良さそうです。



  • 利用時には固定文言が必須

    自由記述の発話はできるんですが、Newsurfaceを用いると、いくつか固定文言発話されます。

    会話の設計時には注意が必要です。


    GoogleHome「XXXXXX」(自由な発話部分)

    GoogleHome「こちらをスマートフォンに送ってもよろしいですか?」

    ユーザー「はい」

    GoogleHome「スマートフォンにて通知を確認してください。」

    終了





サンプル等

gitlabにActionsSDKでのサンプルソースを置きました

https://gitlab.com/kbn1053/newsurface_sample_jp


その他

NewSurfaceがなかなか使えなかったので、URLをユーザーに通知するバッドノウハウが持ちネタとしてありました。


URLを記載した部分をSSMLの読み上げタグで囲って、「URLを表示しました。マイアクティビティを見てください」と発話させるテク


これUX全然良くないよなーと考えてたところで、NewSurfaceが使えるようになったので埋葬です💀💀

ではまた。