投稿

ラベル(DialogFlow)が付いた投稿を表示しています

Dialogflow から webhook される php を Google API v2 に対応させる

イメージ
Dialogflow から google api v2 に対応しろとのお知らせが表示されるので、webhook される php を Google API v2 に対応させる 命令の流れをおさらい まずは、どういう仕組だったかを忘れていたのでメモ アプリに入って、命令を行うと、Intent にある Action and parameters の値を含む json が Fulfillment に指定した url へポストされるので、応答メッセージを含む json を返す という仕組み API の切り替え google api v2 対応への切り替え(Dialogflow側)は、スイッチを切り替えるだけ api 切り替え後の web 側変更 API を切り替えると、送られてくる json の内容が変わります。また、応答メッセージを埋め込む json の形式も変わります。なので「そのままだと アプリから応答がありません」みたいな形になります api v1 で post される json api v2 で post される json php の場合 $data = file_get_contents("php://input"); // 取得 $jsonArray = json_decode($data, true); // json -> 配列 // v1 action取得 $action = $jsonArray["result"]["action"]; // v2 action取得 $action = $jsonArray["queryResult"]["action"]; な感じに取得位置を変更します 送られてきたアクションに対する応答は、 こちら のような形で speech と displayText で返していたものを fulfillmentText というキーに変更します ※面倒なので v1 の応答に fulfillmentText を追加して対応したらうまく動きませんでした 端的に書くと // api v1 応答 echo json_encode(array( "spe...

Dialogflow + Actions on Google で作成したアプリが「Sorry, this action is not available in simulation」

イメージ
Dialogflow + Actions on Google で作成したアプリがいつの間にか呼び出せなくなっていて、エミュレータから呼び出しても「Sorry, this action is not available in simulation」と表示されて起動しない エミュレータ画面から、CHANGE VERSION を押して、バージョンを更新する

Google Home(Assistant) での独自コマンド所感

Google Home(Assistant) で独自コマンドを色々作ってみた所感 一発物の命令と応答 「ok,google テレビつけて」みたいなの IFTTT で this に Google Assistant that に Webhook を選択するだけ、だが this→thatが一方通行なため、Web等からのレスポンスを Assistant へ反映できない 具体的には this の Google Assistant で文字や数値を入れるタイプを選択した場合 $ を入れた所が、変化する場所(例「お父さんに $ とメールして」)で、レスポンス(例「お父さんに $ とメールしました」)には $ が使えるのみ 一方 that の Webhook では $ → {{TextField}} という置換文字を post したりして Webへ送り出すことは出来る。ただし、ここでのWebレスポンスを先程の、レスポンスに使うことが出来ない チャット形式のアプリ型 「ok,google リモコンにつないで」みたいなので、リモコンアプリに接続(そっから先は、アプリから抜けるまで、アプリとの対話になる) 詳細な流れは コチラ 上記だと、レスポンスを変えられないので物足りない 下記だと、大掛かりすぎるというかチャットを抜けるまで対象アプリとの会話になり、自然終了しない ちなみに連携サービス IFTTT, Microsoft Flow, Zaiper のうち、Google Assistant に対応するのは今のところ IFTTT のみ これ IFTTTができてるんなら、直接 Google Assistant とやり取りできるんじゃないかと思うのだが、誰かおせーてー