DialogflowのDialogflowApp.getUserにてユーザー情報を取得できない
https://developers.google.com/actions/reference/nodejs/ApiAiApp
上記の公式サイトを参考に、Dialogflow上でアクセストークンを取得したいと思っていますが、DialogflowApp.getUser()の結果がnullとなってしまいます。
アカウントリンキングにより、クライアント側ではGoogleアカウントで認証済みです。
DialogFlowのSimulatorのDEBUGタブでは「assistantToAgentDebug.assistantToAgentJson.user」
に値が入っており、
req.body.originalRequest.data.user.accessToken
で直接参照する分にはアクセストークンを取得できました。
DialogflowApp.getUser()でユーザー情報を取得するには
下記定義で誤っている個所などがありますでしょうか。
※Fullfilmentを利用し、index.jsにロジックを記載しています。
<ソース>
■index.js
'use strict';
const App = require('actions-on-google').DialogflowApp;
exports.testMethod = (req, res) => {
// 結果がnullとなる
const app = new App({req, res});
let user = app.getUser();
console.log('User is ' + user);
// アクセストークンが取得できる
let accessToken = req.body.originalRequest.data.user.accessToken;
console.log('accessToken is ' + accessToken);
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify({ 'speech': 'success!', 'displayText': 'success!' }));
};
■package.json
{
"name": "testMethod",
"engines": {
"node": "~4.2"
},
"dependencies": {
"actions-on-google": "^1.0.0",
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.5.7"
}
}