DialogflowのFulfillmentでユーザ入力のパラメータを取得するときにハマった
Google Homeアプリを開発している時に、DialogflowのFulfillmentでユーザ入力のパラメータ(例. Aさん「◯◯を教えて」の◯◯の部分)を取得するときに悪戦苦闘したので、メモを残しておきます。
どこでハマったの?
index.js
...省略...
const App = require('actions-on-google').DialogflowApp;
...省略...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const app = new App({request, response});
...省略...
});
Firebaseのログ
TypeError: App is not a constructor
at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:11:15)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:26:47)
at /var/tmp/worker/worker.js:676:7
at /var/tmp/worker/worker.js:660:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
index.js
...省略...
const App = require('actions-on-google').DialogflowApp;
...省略...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const app = new App({request, response});
...省略...
});
Firebaseのログ
TypeError: App is not a constructor
at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:11:15)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:26:47)
at /var/tmp/worker/worker.js:676:7
at /var/tmp/worker/worker.js:660:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
どうやら、npmのactions-on-google
パッケージがうまく動作していない模様。ただindex.js
は以下公式サイトを参考に作成したので、スクリプト自体はあっているはず。。
Dialogflow で初めてのアプリをビルドする | Actions on Google | Google Developers
原因はpackage.json
の中にありました
原因はpackage.json
の中で定義しているactions-on-google
のバージョンでした。
FulfillmentのInline Editorにある、デフォルトのpackage.json
内のactions-on-google
だとうまく動作しないようです。修正後のバージョンにすると動きました!
デフォルトのpackage.json
{
...省略...
"dependencies": {
"actions-on-google": "2.0.0-alpha.2",
...省略...
}
}
修正後のpackage.json
{
...省略...
"dependencies": {
"actions-on-google": "^1.0.0",
...省略...
}
}
まとめ
Google Homeアプリ開発はまだまだ情報が少ないのでよくつまづきます。もっともっと開発者が増えてこういったメモが増えると嬉しいですね。
Author And Source
この問題について(DialogflowのFulfillmentでユーザ入力のパラメータを取得するときにハマった), 我々は、より多くの情報をここで見つけました https://qiita.com/donchan922/items/9756f05919bba8630e24著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .