Я пытаюсь создать действие, которое считывает информацию из моего собственного календаря для любого пользователя, который запрашивает ее через Google Assistant.
Обратите внимание, что я не хочу, чтобы каждый пользователь имел доступ к своим соответствующимдетали календаря.Но я хочу, чтобы они могли получить доступ к моим данным календаря через действие.
Я попробовал это на основе того, что нашел здесь
Это то, что я пытался,но это никогда не работало.Кто-нибудь из вас имеет представление, почему?
... //other declarations and stuff
let Assistant = require('actions-on-google').ApiAiAssistant;
... //rest of the code
//Specific action corresponding to the read Calendar intent.
function readCalendarAction (assistant) {
function finalResponse(response){
assistant.ask(response); //final response from fullfillment
}
let google = require('googleapis');
let privatekey = require("./mynewpk.json");
// configure a JWT auth client
let jwtClient = new google.auth.JWT(
privatekey.client_email,
null,
privatekey.private_key,
['https://www.googleapis.com/auth/calendar']);
//authenticate request
jwtClient.authorize(function (err, tokens) {
if (err) {
//console.log(err);
var response = 'This one is an error';
finalResponse(response);
return;
} else {
//console.log("Successfully connected!");
//var response = 'this is the newer answer';
//finalResponse(response);
}
});
//Google Calendar API
let calendar = google.calendar('v3');
calendar.events.list({
auth: jwtClient,
calendarId: 'primary'
}, function (err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
var events = response.items;
var response = events[0].summary;
finalResponse(response);
});