【发布时间】:2018-08-26 04:59:43
【问题描述】:
我正在尝试将 Google 日历与 DialogFlow 集成,但我遇到了困难。
我在项目的 Fulfillment 部分添加了以下代码,但我总是收到 Firebase 错误:
TypeError: Cannot read property 'calendar' of undefined
at createEvent (/user_code/index.js:70:27)
at authorize (/user_code/index.js:33:5)
at yourFunctionHandler (/user_code/index.js:122:5)
at WebhookClient.handleRequest (/user_code/node_modules/dialogflow-
fulfillment/src/dialogflow-fulfillment.js:273:44)
代码:
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const fs = require('fs');
const readline = require('readline');
const {google}= require('googleapis');
const { OAuth2Client } = require("google-auth-library");
function authorize(credentials, callback) {
const client_id = "xxxxxxxxx";
const client_secret = "xxxxxxxxx";
const redirect_uris = "xxxxxxxxx";
const oauth2Client = new OAuth2Client(client_id, client_secret, redirect_uris[0]);
oauth2Client.setCredentials(JSON.parse('xxxxxxxxx'));
callback(oauth2Client);
}
function listEvents(auth) {
google.events.list({
auth:auth,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const events = res.data.items;
if (events.length) {
console.log('Upcoming 10 events:');
events.map((event, i) => {
const start = event.start.dateTime || event.start.date;
console.log(`${start} - ${event.summary}`);
});
} else {
console.log('No upcoming events found.');
}
});
}
是否有人可以与我分享任何示例,以便我了解至少连接到 Google API 所需的流程?
谢谢
美国
【问题讨论】:
-
已经正确标记了这个问题,因为人们可以识别出与
dialogflow或api.ai的零关系——这可能是你项目的一部分,但不是这个问题的一部分。
标签: javascript node.js google-calendar-api google-api-nodejs-client