[Модуль] Simple Calendar (app_calendar)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Вс май 10, 2020 10:10 pm

vitosmaxim80sad145 писал(а):
Вс май 10, 2020 9:02 pm
fandaymon писал(а):
Пт май 08, 2020 12:09 am
vitosmaxim80sad145 писал(а):
Чт май 07, 2020 10:42 pm
А нет возможности на дни рождения ставить фото именинника ?
Ставить фотку именинника куда?
Чтобы в календаре на дате стояла фотка именинника
Где же там фотка поместиться?! Там же маленький квадратик
Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Jilber » Чт май 28, 2020 1:11 pm

Подскажите, как можно отфильтровать отдельно праздники (без задач) ?
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение xor » Чт май 28, 2020 11:21 pm

Jilber писал(а):
Чт май 28, 2020 1:11 pm
Подскажите, как можно отфильтровать отдельно праздники (без задач) ?
эээ, а в чём проблема?
2020-05-28_23-18-53.png
2020-05-28_23-18-53.png (23.07 КБ) 3281 просмотр
Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Jilber » Сб май 30, 2020 5:15 pm

В модуле в разделе "Помощь" есть скрипт "Говорящий календарь", но он проговаривает все задачи и потом уже события. Я имел ввиду как можно проговорить (или сохранить в отдельное свойство) только текущие праздники.
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение webms » Вт июн 02, 2020 1:39 pm

Jilber писал(а):
Сб май 30, 2020 5:15 pm
В модуле в разделе "Помощь" есть скрипт "Говорящий календарь", но он проговаривает все задачи и потом уже события. Я имел ввиду как можно проговорить (или сохранить в отдельное свойство) только текущие праздники.
после

Код: Выделить всё

foreach($events as $ev)
добавить

Код: Выделить всё

if ($ev['CALENDAR_CATEGORY_ID'] == ИД_КАТЕГОРИИ) { 
и до

Код: Выделить всё

if ($i != 0) $say_phrase.= "У вас на сегодня запланированы задачи, ".$tasks;
добавить
За это сообщение автора webms поблагодарил:
Jilber (Ср июн 03, 2020 11:25 am)
Рейтинг: 1.16%
Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Alexander Znamensky » Пт авг 14, 2020 10:25 pm

fandaymon писал(а):
Пт янв 18, 2019 12:57 am
pdfsen писал(а):
Чт янв 17, 2019 10:59 pm
Подскажите, пожалуйста, как сделать автоматическую синхронизацию Гугл календаря с МДМ на постоянной основе ?
Я создаю ежедневно в Гугл календаре на мобилке много Задач, и чтоб они автоматически сразу переносились в МДМ.

Спс
Можно сделать используя сервисный экаунт. Я где-то описывал как у меня сделано считывание мероприятий на сегодня из гугл-календаря, но что-то не могу найти...

Делается сервисный экаунт
Календарь с задачами расшаривается для этого экаунта
Создаётся json для авторизации от сервисного акаунта
Помещается куда-нибудь на сервер
Скачивается библиотека от гугла https://github.com/googleapis/google-api-php-client
Помещается куда-нибудь в доступное для веб-сервера место
И раз в день (или чаще) считываются задачи из гугл-календаря и записываются в МДМ

Для облегчения задачи можно воспользоватся модулем Ивана, так как он в процессе инсталляции как раз ставит библиотеку гугла.

Сам код испорта примерно такой
СпойлерПоказать

Код: Выделить всё

require_once './Google/vendor/autoload.php'; //тут надо поставить правильный путь до файла autoload.php из библиотеки

putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json'); //здесь полный путь и название джейсона
$client = new Google_Client();

$client->useApplicationDefaultCredentials();
$client->setApplicationName(‘TestCalendarAPI’);
$client->setScopes('https://www.googleapis.com/auth/calendar');
$service = new Google_Service_Calendar($client);

// Берём 10 задач за сегодня
$calendarId = 'email@gmail.com'; // id основного календаря совпадает с имейлом
$optParams = array(
  'maxResults' => 10,
  'orderBy' => 'startTime',
  'singleEvents' => TRUE,
  'timeMin' => date('Y-m-d',strtotime('today')) .'T23:59:59+02:00',
  'timeMax' => date('Y-m-d',strtotime('+1 day')) .'T00:00:01+02:00',
);


$results = $service->events->listEvents($calendarId, $optParams);

if (count($results->getItems()) > 0) {
  foreach ($results->getItems() as $event) {
  $rec=array();
  $rec['TITLE']=$event->getSummary();
  $rec['IS_TASK']=1;
  $rec['ADDED']=date('Y-m-d H:i:s');
  $rec['ID']=SQLInsert('calendar_events', $rec); 
  }
} 
Эх..... недостаточно вводных.... Очень хочу обновлять G Календарь.... Но опыта и знаний не хватает....

Fandaymon, я помню, что МЖДМ для Вас хобби, но, если у вас будет время/возможность, может быть сможете поподробнее объяснить, как создать сервисные аккаунт, как расшарить для него свой календарь через json и куда json нужно запихнуть ))))

Заранее спасибо!

P.S. Обязуюсь сделать потом инструкцию для всех жаждущих )))
Последний раз редактировалось Alexander Znamensky Вс авг 30, 2020 1:54 pm, всего редактировалось 2 раза.
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Пт авг 14, 2020 11:11 pm

Alexander Znamensky писал(а):
Пт авг 14, 2020 10:25 pm

Эх..... недостаточно вводных.... Очень хочу обновлять G Календарь.... Но опыта и знаний не хватает....

Fondamoin, я помню, что МЖДМ для Вас хобби, но, если у вас будет время/возможность, может быть сможете поподробнее объяснить, как создать сервисные аккаунт, как расшарить для него свой календарь через json и куда json нужно запихнуть ))))

Заранее спасибо!

P.S. Обязуюсь сделать потом инструкцию для всех жаждущих )))
По ссылке надо нажать кнопку новый проект

https://console.cloud.google.com/projec ... ew=project

Для этого проекта надо будет сделать ключ - create key. Ключ в виде jsona сохранить в какой-нибудь /home/pi/ Это позволит авторизоваться в гугле используя файл, вместо временных токенов.

Сервисный акаунт будет иметь свой почтовый ящик, что-нибудь типа бла-бла@verdant-bulkvarkблабла... В настройках своего календаря (три точки - Параметры календаря) надо в Настройках и общем доступе Добавить пользователя бла-бла@verdant... и дать ему права на календарь
Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Alexander Znamensky » Вс авг 16, 2020 10:28 pm

fandaymon писал(а):
Пт авг 14, 2020 11:11 pm
Alexander Znamensky писал(а):
Пт авг 14, 2020 10:25 pm

Эх..... недостаточно вводных.... Очень хочу обновлять G Календарь.... Но опыта и знаний не хватает....

Fondamoin, я помню, что МЖДМ для Вас хобби, но, если у вас будет время/возможность, может быть сможете поподробнее объяснить, как создать сервисные аккаунт, как расшарить для него свой календарь через json и куда json нужно запихнуть ))))

Заранее спасибо!

P.S. Обязуюсь сделать потом инструкцию для всех жаждущих )))
По ссылке надо нажать кнопку новый проект

https://console.cloud.google.com/projec ... ew=project

Для этого проекта надо будет сделать ключ - create key. Ключ в виде jsona сохранить в какой-нибудь /home/pi/ Это позволит авторизоваться в гугле используя файл, вместо временных токенов.

Сервисный акаунт будет иметь свой почтовый ящик, что-нибудь типа бла-бла@verdant-bulkvarkблабла... В настройках своего календаря (три точки - Параметры календаря) надо в Настройках и общем доступе Добавить пользователя бла-бла@verdant... и дать ему права на календарь
Добрый вечер, уважаемый Fandaymon.

Спасибо за инструкцию. Но что-то похоже я делаю не так....
Сервисный аккаунт у меня уже был создан:
СпойлерПоказать
Screenshot 2020-08-16 12.53.30.png
Screenshot 2020-08-16 12.53.30.png (414.67 КБ) 2952 просмотра
Скачиваю файл json:
СпойлерПоказать
Screenshot 2020-08-16 22.54.29.png
Screenshot 2020-08-16 22.54.29.png (125.78 КБ) 2943 просмотра
СпойлерПоказать
Screenshot 2020-08-16 22.08.55.png
Screenshot 2020-08-16 22.08.55.png (410.65 КБ) 2952 просмотра
копирую json в папку /home/pi/.
Расшариваю гугл-календарь:
СпойлерПоказать
calendar.png
calendar.png (403.75 КБ) 2952 просмотра
.
Делаю скрипт по Вашей инструкции:
СпойлерПоказать
Screenshot 2020-08-16 22.23.00.png
Screenshot 2020-08-16 22.23.00.png (518.18 КБ) 2952 просмотра
При выполнении - ошибка.
СпойлерПоказать
Screenshot 2020-08-16 22.18.52.png
Screenshot 2020-08-16 22.18.52.png (474.68 КБ) 2952 просмотра
В чем моя ошибка?
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение fandaymon » Вс авг 16, 2020 11:55 pm

Alexander Znamensky писал(а):
Вс авг 16, 2020 10:28 pm


В чем моя ошибка?
В первой строчке, где requre_once должен быть вбит правильный путь на autoload.php Возможно путь не правильный
Ещё надо убедится, чтобы json доступен для пользователя под которым МДМ работает

Ну и если библиотека старая, то можно скачать в какую-нибудь свою папку отсюда https://github.com/googleapis/google-api-php-client
Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

Re: [Модуль] Simple Calendar (app_calendar)

Сообщение Alexander Znamensky » Пн авг 17, 2020 6:49 pm

fandaymon писал(а):
Вс авг 16, 2020 11:55 pm
Alexander Znamensky писал(а):
Вс авг 16, 2020 10:28 pm


В чем моя ошибка?
В первой строчке, где requre_once должен быть вбит правильный путь на autoload.php Возможно путь не правильный
Ещё надо убедится, чтобы json доступен для пользователя под которым МДМ работает

Ну и если библиотека старая, то можно скачать в какую-нибудь свою папку отсюда https://github.com/googleapis/google-api-php-client
Добрый вечер.

Скачал новую библиотеку по Вашему совету, исправил ошибку с кавычками $client->setApplicationName(‘TestCalendarAPI’);
Проверил, что в requre_once путь к autoload.php правильный, json доступен для пользователя pi МДМ.
Ошибка при запуске скрипта пропала, но события из календаря не подтягиваются.
Возможно что-то с сервисным аккаунтом?
СпойлерПоказать
$service:
{"acl":{},"calendarList":{},"calendars":{},"channels":{},"colors":{},"events":{},"freebusy":{},"settings":{},"batchPath":"batch\/calendar\/v3","rootUrl":"https:\/\/www.googleapis.com\/","version":"v3","servicePath":"calendar\/v3\/","availableScopes":null,"resource":null,"serviceName":"calendar"}
$optParams:
{"maxResults":10,"orderBy":"startTime","singleEvents":true,"timeMin":"2020-08-17T23:59:59+03:00","timeMax":"2020-08-18T00:00:01+03:00"}
$results:
{"accessRole":"reader","description":null,"etag":"\"p324a7clon2hem0g\"","kind":"calendar#events","nextPageToken":null,"nextSyncToken":null,"summary":"Main_email_address@gmail.com","timeZone":"Europe\/Moscow","updated":"2020-08-17T14:24:25.285Z","defaultReminders":[],"items":[]}
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
Ответить