40192


<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

[code]

    '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!' }));
    };
    
[/code]

■package.json

[code]

    {
      "name": "testMethod",
      "engines": {
        "node": "~4.2"
      },
      "dependencies": {
        "actions-on-google": "^1.0.0",
        "firebase-admin": "^4.2.1",
        "firebase-functions": "^0.5.7"
      }
    }
    
[/code]


CC BY-SA 3.0
2017-12-11T07:35:46.257
40185
2017-12-11T13:21:58.580
2017-12-11T10:32:42.480
26564
26564
question
node.js firebase
DialogflowのDialogflowApp.getUserにてユーザー情報を取得できない


本件、下記コードとすることで解決しました。

[code]

    const app = new App({request:req, response:res});
    
[/code]

ご協力ありがとうございました。


CC BY-SA 3.0
2017-12-11T13:21:58.580
40192
2017-12-11T13:21:58.580
26564
40185
answer