Синхронизация с календарем google
Доброго времени суток.
Делаю синхронизацию с календарем гугл в конфигурации 1С: Деньги 8. Авторизовался в календаре, могу посмотреть события, могу удалять события, но не получается создать событие, постоянно выпадает ошибка: Код состояния 400 "Missing end time." Понимаю, что ругается на то, что не указано время окончания события, но время начала и окончания указывается.
Код формирования JSON
Код преобразования даты
Сформированная строка JSON
Код отправки запроса
При запуске из 1С только ошибка, но если подставить этот код в консоль проверки google, событие создается
В чем может быть проблема?
Делаю синхронизацию с календарем гугл в конфигурации 1С: Деньги 8. Авторизовался в календаре, могу посмотреть события, могу удалять события, но не получается создать событие, постоянно выпадает ошибка: Код состояния 400 "Missing end time." Понимаю, что ругается на то, что не указано время окончания события, но время начала и окончания указывается.
Код формирования JSON
СтруктураСобытия = Новый Соответствие;
СтруктураСобытия.Вставить("end", ПреобразоватьДатуВФорматКалендаря(ВыборкаДетальныеЗаписи.ДатаОкончания));
СтруктураСобытия.Вставить("start", ПреобразоватьДатуВФорматКалендаря(ВыборкаДетальныеЗаписи.ДатаНачала));
СтруктураСобытия.Вставить("summary", "Заголовок события");
СтруктураСобытия.Вставить("description", "Учимся выгружать события в календарь");
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
НастройкиСериализации = Новый НастройкиСериализацииJSON();
НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещением;
ЗаписатьJSON(ЗаписьJSON, СтруктураСобытия, НастройкиСериализации);
СтрокаJSON = ЗаписьJSON.Закрыть();
ПоказатьКод преобразования даты
Функция ПреобразоватьДатуВФорматКалендаря(Дата)
Соответствие = Новый Соответствие();
Соответствие.Вставить("dateTime", Дата);
Соответствие.Вставить("timeZone", "Europe/Moscow");
Возврат Соответствие;
КонецФункции
Сформированная строка JSON
{
"description": "Учимся выгружать события в календарь",
"summary": "Заголовок события",
"start": {
"timeZone": "Europe/Moscow",
"dateTime": "2022-09-01T19:00:00+03:00"
},
"end": {
"timeZone": "Europe/Moscow",
"dateTime": "2022-09-01T20:00:00+03:00"
}
}
/CODE]
Ответ JSON
[1C-CODE]
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Missing end time."
}
],
"code": 400,
"message": "Missing end time."
}
}
ПоказатьКод отправки запроса
АдресЗапроса = "https://www.googleapis.com/calendar/v3/calendars/{ИдКалендаря}/events";
ИдКалендаря = Константы.ДБ_ИдентификаторКалендаря.Получить();
АдресЗапроса = СтрЗаменить(АдресЗапроса, "{ИдКалендаря}", ИдКалендаря);
СтруктураURI = СтруктураURI(АдресЗапроса);
HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, 443 , , , , 15, Новый ЗащищенноеСоединениеOpenSSL);
Headers = Новый Соответствие;
Headers.Вставить("Host", СтруктураURI.Хост);
Headers.Вставить("Content-Type", "application/json");
Headers.Вставить("Authorization", "Bearer " + Token);
Headers.Вставить("Content-length", "0");
Headers.Вставить("Accept", "application/json");
HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, headers);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
Возврат HTTPОтвет;
ПоказатьПри запуске из 1С только ошибка, но если подставить этот код в консоль проверки google, событие создается
В чем может быть проблема?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Чего не гуглим ? первая же ссылка
https://stackoverflow.com/questions/42739046/missing-end-time-google-calendar-when-insert-event
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот