ユーザーの名前を知りたいのですが、別の言語を使用しているため、nodejs sdk を使用できません。
どうすれば許可を求めることができますか?
通常のjson応答を使用する方法をお勧めします。
ユーザーの名前を知りたいのですが、別の言語を使用しているため、nodejs sdk を使用できません。
どうすれば許可を求めることができますか?
通常のjson応答を使用する方法をお勧めします。
この最小限のスクリプトをハッキングして、nodejs SDK が返す JSON 応答を取得しました。
gaction.js :
const DialogflowApp = require('actions-on-google').DialogflowApp;
const app = new DialogflowApp({
request: {
body: {
result: {
action: 'Test',
contexts: []
}
},
get: (h) => h
},
response: {
append: (h, v) => console.log(`${h}: ${v}`),
status: (code) => {
return {send: (resp) => console.log(JSON.stringify(resp, null, 2))}
}
}
});
function testCode(app) {
app.askForPermission('To locate you', app.SupportedPermissions.DEVICE_PRECISE_LOCATION);
}
app.handleRequest(new Map().set('Test', testCode));
私はまだnode.jsの専門家ではないので、これは最適な解決策ではないかもしれません. ノードを npm install actions-on-google
インストールしてコマンドを実行すると、必要な依存関係がインストールされます。完了したら、次の出力を作成
する実行する必要があります。node gaction
Google-Assistant-API-Version: Google-Assistant-API-Version
Content-Type: application/json
{
"speech": "PLACEHOLDER_FOR_PERMISSION",
"contextOut": [
{
"name": "_actions_on_google_",
"lifespan": 100,
"parameters": {}
}
],
"data": {
"google": {
"expect_user_response": true,
"no_input_prompts": [],
"is_ssml": false,
"system_intent": {
"intent": "assistant.intent.action.PERMISSION",
"spec": {
"permission_value_spec": {
"opt_context": "To locate you",
"permissions": [
"DEVICE_PRECISE_LOCATION"
]
}
}
}
}
}
}
ここで上記の JSON を送信すると、Google Home から尋ねられます。楽しむ!
アクションを使用した API.AI Webhook のリクエスト/レスポンス JSON 形式は、https://developers.google.com/actions/apiai/webhook に記載されています。
お気づきのように、data.google.permissions_request
属性にはリクエストに関する 2 つのフィールドが含まれています。
opt_context
情報を求めている理由についてのコンテキストを提供するために読み取られる文字列が含まれています。
permissions
要求している情報を指定する文字列の配列です。文字列は値を持つことができます