組織内で使用する Google アシスタント アプリを構築したいと考えています。アプリは、アイテムの現在利用可能な在庫をユーザーに伝えます。アプリは、Google スプレッドシートからこのデータを読み取ります。doc.getInfo(function(err, info) で、Actions on Google Simulator でアプリをテストすると、'info' が undefined と表示されます。誰か理由を教えてください。これらの例に従って、https://www.twilioの下にコードを記述しました。 .com/blog/2017/03/google-spreadsheets-and-javascriptnode-js.htmlおよびhttps://developers.google.com/actions/dialogflow/first-app
'use strict';
process.env.DEBUG = 'actions-on-google:*';
const App = require('actions-on-google').DialogflowApp;
const functions = require('firebase-functions');
// a. the action name from the get_item_name Dialogflow intent
const NAME_ACTION = 'get_item_name';
// b. the parameters that are parsed from the item_name_intent intent
const ITEM_NAME_ARGUMENT = 'item_name_entity';
var GoogleSpreadsheet = require('google-spreadsheet');
var credentials = require('./factoryStockTeller-77942d.json');
var doc = new GoogleSpreadsheet('17E49xZp_JjylT-oVFS1Q8zzJZ9qGkSgQps');
exports.factoryStockTeller = functions.https.onRequest((request, response) =>
{
const app = new App({request, response});
function itemStock(app)
{
let itemName = app.getArgument(ITEM_NAME_ARGUMENT);
// Authenticate with the Google Spreadsheets API.
doc.useServiceAccountAuth(credentials, function (err)
{
doc.getInfo(function(err, info)
{
if(typeof info === "undefined")
app.tell('UnDefined');
else
app.tell('Defined');
});
});
}
// d. build an action map, which maps intent names to functions
let actionMap = new Map();
actionMap.set(NAME_ACTION, itemStock);
app.handleRequest(actionMap);
});