Google Actions-Доступ к календарю API для вставки списка событий - PullRequest
0 голосов
/ 11 сентября 2018

Пользователь уже авторизовал свою учетную запись gmail с помощью входа в Google из Google Actions. Теперь мне нужно вставить список событий в календарь пользователей Google, но я столкнулся с какой-то проблемой или не знаю, как ее создать. Я новичок в календаре API, поэтому, пожалуйста, сообщите мне, как ее решить.

    const {google} = require('googleapis');
        var calendar = google.calendar('v3');
        const SCOPES = ['https://www.googleapis.com/auth/calendar'];
        const client_secret = "xyz"; 
        const client_id     = "xyz";
        const redirect_uris ="xyz";
        const oAuth2Client = new google.auth.OAuth2(
          client_id, client_secret, redirect_uris);
        oAuth2Client.setCredentials({
         access_token: 'ACCESS TOKEN HERE'
       });
var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
};
calendar.events.insert({
  auth: oAuth2Client,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
});
  1. Как получить доступ к пользовательскому календарю Google с помощью полученного идентификатора из действий Google?
  2. Как вставить несколько событий в календарь пользователя?.

1 Ответ

0 голосов
/ 11 сентября 2018

Идентификационного токена, который вы получите с помощью Google Sign In for Assistant, недостаточно, чтобы получить доступ к их календарю. Вам понадобится токен доступа или токен авторизации. Хотя Google Sign In помогает в этом - это не полная картина, и решение может быть немного запутанным.

В общем, вам нужно сделать следующее:

  1. Необходимо убедиться, что в проекте Google Cloud, который вы используете для своего помощника, включены API-интерфейсы Календаря. Это можно сделать с помощью API-библиотеки Облачной панели управления.

  2. Вам также потребуется создать ключ идентификатора клиента OAuth 2.0 для веб-приложения (честно), который вы делаете на странице Учетные данные Облачной панели управления

  3. С их помощью и с помощью Google Sign In вы можете создать гибридную стратегию входа в систему , которая позволит пользователю войти в систему и авторизовать ваше действие, чтобы получить доступ к своему календарю с использованием правильных областей. ,

  4. В конце процесса входа в систему вы (в конце концов) получите токен доступа и обновите токен. Вы будете хранить это в каком-либо хранилище данных или базе данных (например, Firebase Firestore) с ключом Google ID пользователя.

  5. Затем, когда они посещают ваше действие, вы можете получить их Google ID из идентификатора токена, найти их токен доступа в вашей базе данных и выполнить команду календаря.

См. этот пост StackOverflow для более полного обсуждения процесса.

...