API AI が提供する GUI ツールを使用してアクションを作成しています。デバイスの位置を取得することは可能ですか? これは、許可を求めることで可能になると聞きました。これはどこかに文書化されていますか?例/コード スニペットは非常に役立ちます。
5 に答える
はい、ユーザーが許可を与えた後、デバイスの場所やその他の情報 (名前) を取得することは可能です。
すでにgoogle によって十分に文書化されているので、ここで繰り返す必要はないと思います。
API.AI のフルフィルメントを通じて呼び出されるカスタム Webhook 実装なしで位置情報を取得できるかどうかという疑問がある場合、答えはノーです。API.AI 自体はこの機能をネイティブに提供していないため、API.AI の拡張機能を使用する必要があります。メカニズム、つまり Webhook です。
私はこれに長い間苦労していました。このフォーラムを見つけて、何かがクリックされました。実はそれほど難しくないことがわかりました。
PHP Webhook では、元のインテントはこれを json またはjson_encode
この配列として返す必要があります。
array(
'data' =>
array(
'google' =>
array(
'expectUserResponse' => true,
'systemIntent' =>
array(
'intent' => 'actions.intent.PERMISSION',
'data' =>
array(
'@type' =>
'type.googleapis.com/google.actions.v2.PermissionValueSpec',
'optContext' => 'To find the closest site ',
'permissions' =>
'DEVICE_PRECISE_LOCATION'
,
),
),
),
),
)
次に、イベントで別のインテントを作成します。actions_intent_PERMISSION
新しく作成されたインテントの php Webhook で、場所が返されます。それは応答にあります:["originalRequest"]['data']['device']['location']['coordinates']
イージーピーシー...
ここでわかるように、レスポンスのApi.Ai docdata
にはフィールドがあります。Google が Webhook 応答を期待するとおりに json 応答を作成する必要があります ( Google docsを参照)。ただし、Api.Ai を使用している場合は、データ フィールドの下に Google json 要素をネストする必要があります。