On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 253
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 16.03.21 21:55. Заголовок: Облачные сервисы (WebDAV, CalDAV &Co)


После некоторого разбирательства с прогой удалось организовать импорт из ICAL-файлов и экспорт в оные. Но тут шеф захотел, чтобы был прямой контакт с CalDav через интернет. Я знаю, что на питоне такое возможно. На дельфине и даже Xojo (RealBasic) тоже - через спецбиблиотеку. Но как реализовать подключение к облачному сервису в Harbour/Minigui?

Возможно ли это вообще?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 174 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]


постоянный участник




Пост N: 279
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 27.03.21 23:05. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это событие календаря, 1 запись в базе (вроде, был еще параметр выполнение события дата-время, или ошибаюсь)
календарей у вас 6 штук. Это личные календари событий или предприятия\организации. Объем календаря (в событиях-записях).
И чего вы от них хотите ? Просто показ в табл. виде отчетов ? Цель ?


Да, просто занесения в DBF в целях синхронизации. 99% времени это работает в локальном режиме. А также обратно занесение полей из DBF в календарь. С последним некоторые проблемы.

curl -k --user USERNAME:PASSWORD -X PUT -H "Content-Type: text/calendar; charset=utf-8" -d "$a" "https://owncloud.jujens.eu/remote.php/caldav/calendars/jujens/omis/<mon-fichier.ics>"


То есть тут <mon-fichier.ics> - это не локальный сгенерированный файл, а элемент календаря в сети. Как в него занести данные из локальных полей, даже если они сгенерированы в ЛОКАЛЬНЫЙ ics файл?
типа C:\MYCALPROG\TEMP\EXPORT.ICS
Как его в календарь с помощью CURL забросить?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3660
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.03.21 23:07. Заголовок: PS2 Есть еще STATUS:..


PS2
Есть еще STATUS:... нашел несколько значений
STATUS:CONFIRMED
STATUS:CANCLED
STATUS:TENTATIVE
возможно надо учесть ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 280
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 27.03.21 23:20. Заголовок: SergKis пишет: PS2 ..


SergKis пишет:

 цитата:
PS2
Есть еще STATUS:... нашел несколько значений
STATUS:CONFIRMED
STATUS:CANCLED
STATUS:TENTATIVE
возможно надо учесть ?


STATUS:CONFIRMED
Но и без него можно обойтись

Я уже сделал считывание из календаря в массив, который потом можно запихнуть в таблицу.
Теперь моя последняя задача - запихивание данных из таблицы в календарь. После чего можно и отдохнуть.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3661
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.03.21 23:47. Заголовок: Dr. Oldwarez пишет Т..


Dr. Oldwarez пишет
 цитата:
Теперь моя последняя задача - запихивание данных из таблицы в календарь.


В поиске попалось https://kb.kopano.io/display/WIKI/Importing+ICAL+.ics+files+into+Kopano
тут https://curl.se/docs/manpage.html смотрим
 цитата:

-T, --upload-file <file>

This transfers the specified local file to the remote URL. If there is no file part in the specified URL, curl will append the local file name. NOTE that you must use a trailing / on the last directory to really prove to Curl that there is no file name or curl will think that your last directory name is the remote file name to use. That will most likely cause the upload operation to fail. If this is used on an HTTP(S) server, the PUT command will be used.
...



Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 281
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 00:00. Заголовок: SergKis пишет: В по..


SergKis пишет:

 цитата:
В поиске попалось https://kb.kopano.io/display/WIKI/Importing+ICAL+.ics+files+into+Kopano
тут https://curl.se/docs/manpage.html смотрим


Спасибо. Завтра с утра попробую это

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1643
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 00:51. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
curl -k --user USERNAME:PASSWORD -X PUT -H "Content-Type: text/calendar; charset=utf-8" -d "$a" "https://owncloud.jujens.eu/remote.php/caldav/calendars/jujens/omis/<mon-fichier.ics>"


То есть тут <mon-fichier.ics> - это не локальный сгенерированный файл, а элемент календаря в сети.
Как в него занести данные из локальных полей, даже если они сгенерированы в ЛОКАЛЬНЫЙ ics файл?
типа C:\MYCALPROG\TEMP\EXPORT.ICS
Как его в календарь с помощью CURL забросить?



Ну там же комментарии есть

Q: In your post new event example, what is $a?

A: Good question. It should contain the data you want to post, ie the content of you local ics file.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 282
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 13:27. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
SergKis пишет:

 цитата:
В поиске попалось https://kb.kopano.io/display/WIKI/Importing+ICAL+.ics+files+into+Kopano
тут https://curl.se/docs/manpage.html смотрим



И сделал...
curl -k --user USERNAME:PASSWORD -T C:\MINIGUI\PROGDIR\TEMPDIR\List.ics https://webmail.abcdef.com/rpc.php/calendars/aaaaa@abcdef.com/calendar~GhGVum1xWexaffEfhiVkNN7/

Спасибо. Завтра с утра попробую это

И получил
<?xml version="1.0" encoding="utf-8"?> 
<d:error
xmlns:d="DAV:"
xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\BadRequest</s:exception>
<s:message>Every VEVENT in this object must have identical UIDs</s:message>
<s:sabredav-version>1.8.12</s:sabredav-version>
</d:error>

Что это за identical UIDs?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1644
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 13:52. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Что это за identical UIDs?


Что-то типа этого
BEGIN:VEVENT
UID:19970901T130000Z-123402@example.com
DTSTAMP:19970901T130000Z
DTSTART:19970401T163000Z

Если вы обновляете события, то как их сервер находит?
Правильно, с помощью UIDs

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 283
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 14:07. Заголовок: Петр пишет: Петр п..


Петр пишет:
[quote]` Петр пишет:

 цитата:
Что-то типа этого
BEGIN:VEVENT
UID:19970901T130000Z-123402@example.com
DTSTAMP:19970901T130000Z
DTSTART:19970401T163000Z

Если вы обновляете события, то как их сервер находит?
Правильно, с помощью UIDs



Знаю. Но я не хочу обновлять, хочу писать новые события. Тогда вообще лучше эти UIDы упразднить? Или как сделать, чтобы оно не искало события, а тупо писало их поверх существующих?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1645
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 14:17. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:

curl -k --user USERNAME:PASSWORD
C:\MINIGUI\PROGDIR\TEMPDIR\List.ics https://webmail.abcdef.com/rpc.php/calendars/aaaaa]https://webmail.abcdef.com/rpc.php/calendars/aaaaa@abcdef.com/calendar~GhGVum1xWexaffEfhiVkNN7/



И запрос какой-то подозрительный, ни -X, ни -T, ни -d, ни --config..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1646
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 14:22. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Знаю. Но я не хочу обновлять, хочу писать новые


По логике, вы не должны указывать UID, тогда сервер сгенерирует новый VEVENT и UID для него.


 цитата:
Тогда вообще лучше эти UIDы упразднить? Или как сделать, чтобы оно не искало события, а тупо писало их поверх существующих?


Это выше ваших сил. К счастью у разработчиков другое мнение.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 284
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 14:35. Заголовок: Петр пишет: Dr. Ol..


Петр пишет:

 цитата:

Dr. Oldwarez пишет:

 цитата:
Знаю. Но я не хочу обновлять, хочу писать новые


По логике, вы не должны указывать UID, тогда сервер сгенерирует новый VEVENT и UID для него.


 цитата:
Тогда вообще лучше эти UIDы упразднить? Или как сделать, чтобы оно не искало события, а тупо писало их поверх существующих?


Это выше ваших сил. К счастью у разработчиков другое мнение.



Выкинул UIDы из ICS-файла и получил
Every VEVENT component must have an UID


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 285
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 14:59. Заголовок: Петр пишет: И запро..


Петр пишет:

 цитата:
И запрос какой-то подозрительный, ни -X, ни -T, ни -d, ни --config..



-Т есть

curl -k --user USERNAME:PASSWORD -T C:\MINIGUI\MYPROG\TEMP\Terminliste.ics https://webmail.kleeblatt.com/rpc.php/calendars/USERNAME/calendar~GhGVum1xWexaffEfhiVkNN7/


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1647
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 15:16. Заголовок: Значит начнем с нача..


Значит начнем с начала.

Dr. Oldwarez пишет:

 цитата:
Но как реализовать подключение к облачному сервису в Harbour/Minigui?
Возможно ли это вообще?


Возможно, но для этого нужно знать, что мы можем (и как) использовать из функционала Harbour и к чему нужно подключаться: какой сервер, протокол, версия, реализация некоторых моментов.
С первым частично плохо. Как дела со вторым у топикстартера, для меня лично непонятно.

Обратите внимание на посты №№257, 282
Dr. Oldwarez пишет:

 цитата:
<?xml version="1.0" encoding="utf-8"?>
<d:error
xmlns:d="DAV:"
xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\BadRequest</s:exception>
<s:message>Every VEVENT in this object must have identical UIDs</s:message>
<s:sabredav-version>1.8.12</s:sabredav-version>
</d:error>



Простой поиск быстро привод к Building a CalDAV client
This document is a general howto on how to build a CalDAV client. The document is language-agnostic

Совет: научились работать с curl, берите документацию и составляйте запросы.
Есть вопросы как то или другое реализовать в Harbour - задавайте здесь.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 286
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 15:51. Заголовок: Петр пишет: Возможн..


Петр пишет:

 цитата:
Возможно, но для этого нужно знать, что мы можем (и как) использовать из функционала Harbour и к чему нужно подключаться: какой сервер, протокол, версия, реализация некоторых моментов.
С первым частично плохо. Как дела со вторым у топикстартера, для меня лично непонятно.


Ага, нет документации, не посмотрел, вот "частично плохо".

Петр пишет:

 цитата:
Совет: научились работать с curl, берите документацию и составляйте запросы.
Есть вопросы как то или другое реализовать в Harbour - задавайте здесь.


Так я уже подключал всё к CURL, считывал оттуда данные. И уже сохранил эти данные в DBF-формате.

Осталось ТОЛЬКО ОДНО - забрасывание ics в календарь. И всё, прогу уже можно сдавать. Проблема, конкретно, не в программе, а в календаре. Установить его на генерацию UIDов. Он же принимал файлы без UIDов в ручном режиме

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1648
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 16:12. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Установить его на генерацию UIDов. Он же принимал файлы без UIDов в ручном режиме



Без комментариев. Вам же результат нужен, а не..
Найдите online uuid generator например
Сгенерируйте uuid, загрузите себе в базу и пользуйтесь.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 287
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 16:49. Заголовок: Петр пишет: Без ком..


Петр пишет:

 цитата:
Без комментариев. Вам же результат нужен, а не..
Найдите online uuid generator например
Сгенерируйте uuid, загрузите себе в базу и пользуйтесь.



В смысле, загрузить вот ЭТО 2f4f6320-8fcc-11eb-8dcd-0242ac130003 в регистр и присваивать ВСЕМ строкам? Или для каждой строки новый генерить, но тут нужна уже встроенная функция.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1649
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 17:04. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
В смысле, загрузить вот ЭТО


Это от сайта вам подарок.

А ниже вы можете указать количество и нажать загрузить в файл, выбрав 1 или 4 версии генератора.

Оффлайн можете подключить библиотеку hbwin и использовать win_UuidCreateString

LOCAL nRPCStatus

? win_UuidCreateString( @nRPCStatus )
? nRPCStatus

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1650
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 28.03.21 17:51. Заголовок: Петр пишет: А ниже ..


Петр пишет:

 цитата:
А ниже вы можете указать количество и нажать загрузить в файл, выбрав 1 или 4 версии генератора.



А еще вы можете пользоваться API сайта и загрузить UUID с помощью CURL

curl.exe -ouuid4.txt -k -X GET -H"text/plain; charset=utf-8" https://www.uuidgenerator.net/api/version4/500
или
curl.exe -ouuid1.txt -k -X GET -H"text/plain; charset=utf-8" https://www.uuidgenerator.net/api/version1

PS.

"text/plain; charset=utf-8"
конечно же лучше заменить на
"Content-Type: text/plain; charset=utf-8"

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 288
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.03.21 21:20. Заголовок: Петр пишет: Оффлайн..


Петр пишет:

 цитата:
Оффлайн можете подключить библиотеку hbwin и использовать win_UuidCreateString

LOCAL nRPCStatus

? win_UuidCreateString( @nRPCStatus )
? nRPCStatus



Подключил и сделал.
То же самое
 
<?xml version="1.0" encoding="utf-8"?>
<d:error
xmlns:d="DAV:"
xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\BadRequest</s:exception>
<s:message>Every VEVENT in this object must have identical UIDs</s:message>
<s:sabredav-version>1.8.12</s:sabredav-version>
</d:error>


Но UIDы в файле выглядят по-другому
 
BEGIN:VEVENT
UID:89dbeac3-50de-4138-915a-1836802d0c9a
DTSTAMP:20210328T211200Z
DTSTART:20210331T090000Z
DTEND:20210331T100000Z
SUMMARY:abcd
DESCRIPTION:qwerty
LOCATION:Utopia
END:VEVENT
BEGIN:VEVENT
UID:33892830-c61d-4279-91e8-3c69e9e13dd5
DTSTAMP:20210328T211200Z
DTSTART:20210401T073000Z
DTEND:20210401T161500Z
SUMMARY:IT DONE
DESCRIPTION:Blahblahblah
LOCATION:Nowhere
END:VEVENT


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 174 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 342
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет