Страница 33 из 38

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

Добавлено: Вс май 10, 2020 10:10 pm
fandaymon
vitosmaxim80sad145 писал(а): Вс май 10, 2020 9:02 pm
fandaymon писал(а): Пт май 08, 2020 12:09 am
vitosmaxim80sad145 писал(а): Чт май 07, 2020 10:42 pm А нет возможности на дни рождения ставить фото именинника ?
Ставить фотку именинника куда?
Чтобы в календаре на дате стояла фотка именинника
Где же там фотка поместиться?! Там же маленький квадратик

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

Добавлено: Чт май 28, 2020 1:11 pm
Jilber
Подскажите, как можно отфильтровать отдельно праздники (без задач) ?

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

Добавлено: Чт май 28, 2020 11:21 pm
xor
Jilber писал(а): Чт май 28, 2020 1:11 pm Подскажите, как можно отфильтровать отдельно праздники (без задач) ?
эээ, а в чём проблема?
2020-05-28_23-18-53.png
2020-05-28_23-18-53.png (23.07 КБ) 4421 просмотр

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

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

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

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

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

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

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

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

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

if ($i != 0) $say_phrase.= "У вас на сегодня запланированы задачи, ".$tasks;
добавить

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

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

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

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

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

Сам код испорта примерно такой
SPOILERSPOILER_SHOW

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

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 protected]'; // 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. Обязуюсь сделать потом инструкцию для всех жаждущих )))

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

Добавлено: Пт авг 14, 2020 11:11 pm
fandaymon
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... и дать ему права на календарь

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

Добавлено: Вс авг 16, 2020 10:28 pm
Alexander Znamensky
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.

Спасибо за инструкцию. Но что-то похоже я делаю не так....
Сервисный аккаунт у меня уже был создан:
SPOILERSPOILER_SHOW
Screenshot 2020-08-16 12.53.30.png
Screenshot 2020-08-16 12.53.30.png (414.67 КБ) 4092 просмотра
Скачиваю файл json:
SPOILERSPOILER_SHOW
Screenshot 2020-08-16 22.54.29.png
Screenshot 2020-08-16 22.54.29.png (125.78 КБ) 4083 просмотра
SPOILERSPOILER_SHOW
Screenshot 2020-08-16 22.08.55.png
Screenshot 2020-08-16 22.08.55.png (410.65 КБ) 4092 просмотра
копирую json в папку /home/pi/.
Расшариваю гугл-календарь:
SPOILERSPOILER_SHOW
calendar.png
calendar.png (403.75 КБ) 4092 просмотра
.
Делаю скрипт по Вашей инструкции:
SPOILERSPOILER_SHOW
Screenshot 2020-08-16 22.23.00.png
Screenshot 2020-08-16 22.23.00.png (518.18 КБ) 4092 просмотра
При выполнении - ошибка.
SPOILERSPOILER_SHOW
Screenshot 2020-08-16 22.18.52.png
Screenshot 2020-08-16 22.18.52.png (474.68 КБ) 4092 просмотра
В чем моя ошибка?

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

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

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

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

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

Добавлено: Пн авг 17, 2020 6:49 pm
Alexander Znamensky
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 МДМ.
Ошибка при запуске скрипта пропала, но события из календаря не подтягиваются.
Возможно что-то с сервисным аккаунтом?
SPOILERSPOILER_SHOW
$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":"[email protected]","timeZone":"Europe\/Moscow","updated":"2020-08-17T14:24:25.285Z","defaultReminders":[],"items":[]}