Я использую API calendar.events.insert для добавления события в свой календарь через PHP-клиент. Событие вводится правильно вместе с соответствующими значениями, установленными API. Тем не менее, он не может инициировать приглашение электронной почты участникам. Я огляделся, чтобы найти, что запрос должен установить параметр sendNotifications как истинный . То же самое, похоже, не помогает.
Вот пример кода:
var request = gapi.client.calendar.events.insert({ "calendarId" : calendarData.id, "sendNotifications": true, "end": { "dateTime": eventData.endTime }, "start": { "dateTime": eventData.startTime }, "summary": eventData.eventName, "attendees": jQuery.map(eventData.attendees, function(a) { return {'email' : a}; }), "reminders": { "useDefault": false, "overrides": [ { "method": "email", "minutes": 15 }, { "method": "popup", "minutes": 15 } ] } });
Где eventData и calendarData – соответствующие объекты.
Хотя моя основная проблема заключается в отправке сообщений электронной почты в первый раз, я также попытался (как можно видеть выше) установить напоминание (используя переопределения ). Хотя всплывающее окно работает так, как ожидалось, я также не получил обновления по электронной почте в этом случае.
Это заставляет меня задаться вопросом, может ли это быть проблемой разрешения – что-то, что мне нужно включить для моего приложения, возможно (пользователю было бы понятно знать, отправляет ли мое приложение электронные письма от их имени)?
В документации API Google для вставки событий параметр «sendNotifications» на самом деле является параметром. Вы можете захотеть поместить его в параметры запроса вместо тела.
В Метеор
Примечание. В моем приложении Meteor я сделал запрос вручную, и я до сих пор не знаком с JavaScript. Я не уверен, как вы это сделаете на простом JavaScript или с помощью API календаря, поэтому я просто поставлю код Метеор, надеюсь, что это поможет, хотя это немного не по теме.
var reqUrl = "https://www.googleapis.com/calendar/v3/calendars/primary/events"; var payload = { 'headers' : { 'Authorization': "Bearer " + token, 'Content-Type': 'application/json' }, 'params': { 'sendNotifications': true }, 'data': { "summary": summary, "location": "", "start": { "dateTime": start }, "end": { "dateTime": end }, "attendees": [ { "email": "*********@gmail.com" } ] } }; Meteor.http.post(reqUrl, reqParams, function () {});
@linaa верна. Просто столкнулся с этим вопросом.
В JS это будет выглядеть так:
var request = gapi.client.calendar.events.insert( sendNotifications: true, { // request body goes here } );
Для этого вы должны установить значение «remindOnRespondedEventsOnly» равным «true».
что означает, следует ли отправлять напоминания о событиях только для событий с статусом ответа пользователя «Да» и «Возможно».
Вы можете найти эту информацию здесь .
Надеюсь, это поможет!