UpdatePermissionクラス実行時のActions on Googleからの通知の許諾の挙動について

15 views
Skip to first unread message

Keita Kobayashi

unread,
Jul 17, 2019, 12:20:15 AM7/17/19
to Assistant Developer Community Japan
下記を参考にプッシュ通知を実装しました。
https://www.eisbahn.jp/codelabs/actions-updates-and-notifications_ja/#7以前は、一度UpdatePermissionを行えば、その後も同じIntent(上記の例で言えばSetup Push Notifications)でも、Actions on Googleから通知の許諾は出なかったと思うのですが、数日ほど前?から、都度通知の許諾が出るようになったようなのですが、同様の現象を確認した方はいらっしゃいますでしょうか?また、この都度通知をできればなくしたいなと思ってるのですが、回避策などご存知の方はいらっしゃいますでしょうか?

Yoichiro Tanaka

unread,
Jul 17, 2019, 1:19:24 AM7/17/19
to Assistant Developer Community Japan
こんにちは。洋一郎です。

以前は、一度UpdatePermissionを行えば、その後も同じIntent(上記の例で言えばSetup Push Notifications)でも、Actions on Googleから通知の許諾は出なかったと思うのですが、数日ほど前?から、都度通知の許諾が出るようになったようなのですが、同様の現象を確認した方はいらっしゃいますでしょうか?

手元で動作確認を行ってみました。ご指摘通り、以下のような変化がありました。

[従来の挙動]
  • 未同意であれば、 `UpdatePermission` 要求時に、ユーザに同意を問う対話が自動的に行われる。同意後に、`actions_intent_PERMISSION` イベントが来て、その中に `PERMISSION: true` および `UPDATES_USER_ID` 値が含まれている。
  • 同意済みであれば、`UpdatePermission` 要求時に、ユーザプロンプトは何も出ずに即 `actions_intent_PERMISSION` イベントが来て、その中には `PERMISSION: true` のみが入っていて `UPDATES_USER_ID` 値は含まれていない。
[現在の挙動]
  • 同意済みかどうかに関わらず、 `UpdatePermission` 要求時に、ユーザに同意を問う対話が自動的に行われる。同意後に、`actions_intent_PERMISSION` イベントが来て、その中に `PERMISSION: true` および `UPDATES_USER_ID` 値が含まれている。
これが仕様通りかどうか、つまり期待した挙動の変更なのかどうかを Google に聞いてみます。

また、この都度通知をできればなくしたいなと思ってるのですが、回避策などご存知の方はいらっしゃいますでしょうか?

実は、毎回 `UpdatePermission` 要求を行う実装ではなく、「同意済みかどうかはアクションが判断し、必要な場合にのみ `UpdatePermission` 要求をするよう実装する」ことが従来から求められています。具体的には、一度同意されたことを示す情報を conv.user.storage に入れておく、という実装方式の例がドキュメントに記載されています。


つまり、回避策としては、同意された際にはそのことをどこかに保持しておいて、それを見て `UpdatePermission` 要求をする必要があるかどうかをアクション自身が判断する、という実装を行うことになるかと思います。

ご参考になれば幸いです。ではでは。

-Yoichiro

Keita Kobayashi

unread,
Jul 17, 2019, 2:47:30 AM7/17/19
to Yoichiro Tanaka, Assistant Developer Community Japan
洋一郎さん

ありがとうございます!
(現状では)UPDATES_USER_ID値が常に表示されるようになったのは朗報です。

ご指摘の内容で問題も解決できそうです。

google側からの正式な回答がありましたらお知らせ頂ければ幸いです。

よろしくお願いします。

--
このメールは Google グループのグループ「Assistant Developer Community Japan」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには assistant-developer-com...@googlegroups.com にメールを送信してください。
このグループに投稿するには assistant-develop...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/assistant-developer-community-japan/74aa19d6-7666-4794-877f-2f9cf24db149%40googlegroups.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages