#node.js #google-api #google-calendar-api
#node.js #google-api #google-calendar-api
Вопрос:
Вот как я извлекаю данные из google-calendar-api: я недавно добавил conferenceDataVersion=1
, но ничего не изменил.
const uri = `${googleapiURL}/calendar/v3/calendars/${calendarId}/events?conferenceDataVersion=1`;
const response = await rp.post({
uri,
headers: {
authorization: `Bearer ${token}`,
},
body,
json: true,
simple: false,
resolveWithFullResponse: true,
});
Раньше я мог получить hangout следующим образом:
const link = response.body.hangoutLink,
Но теперь у нас больше нет hangoutLink
атрибута внутри body. Как я мог это получить?
Я читал документацию о параметрах запроса тела запроса. Существует conferenceData
, но нет примера того, как его использовать.
Комментарии:
1. Когда событие будет вставлено, можете ли вы попробовать просмотреть его в веб-интерфейсе календаря Google и проверить, видите ли вы опцию Google Meet на мероприятии, подобную этому образцу изображения ?
2. @IrvinJayG. Привет! Спасибо за твою помощь, чувак. Встреча не была создана, у меня не было кнопки «присоединиться», как показано на вашем изображении. Официальная документация немного сбивает с толку, но я обнаружил, что мне нужно добавить
conferenceData
объект.
Ответ №1:
После сентября 2020 года. API календаря Google изменен, и встречи больше не создаются по умолчанию. Нам нужно явно «сообщить», что мы хотим создать встречу (ссылка на hangout).
1 — Сначала нам нужно добавить параметр запроса conferenceDataVersion=1
2 — Нам нужно добавить новый объект в тело запроса.
conferenceData: {
createRequest: {
conferenceSolutionKey: {
type: 'hangoutsMeet',
},
requestId: <<randomString>>,
},
}
Дополнительная информация:
Согласно документации для событий: вставка и повторное представление ресурса события:
conferenceDataVersion
:integer
Номер версии данных конференции, поддерживаемых клиентом API. Версия 0 не предполагает поддержки данных конференции и игнорирует данные конференции в теле события. Версия 1 включает поддержку копирования ConferenceData, а также для создания новых конференций с использованием поля createRequest conferenceData. Значение по умолчанию равно 0. Допустимыми значениями являются
0
to1
, включительно.
conferenceData.createRequest
:nested object
Запрос на создание новой конференции и прикрепление ее к событию. Данные генерируются асинхронно. Чтобы узнать, присутствуют ли данные, проверьте
status
поле.Требуется либо
conferenceSolution
и хотя бы одинentryPoint
, либоcreateRequest
.
conferenceData.createRequest.conferenceSolutionKey.type
:string
Тип решения для конференции.
Если клиент сталкивается с незнакомым или пустым типом, он все равно должен иметь возможность отображать точки входа. Однако он должен запретить изменения.
Возможные значения:
- «
eventHangout
» для Hangouts для потребителей (http://hangouts.google.com ) // УСТАРЕЛ- «
eventNamedHangout
» для классических Hangouts для пользователей G Suite (http://hangouts.google.com ) // УСТАРЕЛ- «
hangoutsMeet
» для Google Meet (http://meet.google.com )- «
addOn
» для поставщиков конференций 3P
conferenceData.createRequest.requestId
:string
Уникальный идентификатор, сгенерированный клиентом для этого запроса. Клиенты должны восстанавливать этот идентификатор для каждого нового запроса. Если предоставленный идентификатор такой же, как и для предыдущего запроса, запрос игнорируется.
С помощью этой информации мы можем сгенерировать запрос на создание события календаря со ссылкой на встречу в качестве решения конференции.
Моим решением для случайной строки было сгенерировать uuid.