Форум » [x]Harbour » Облачные сервисы (WebDAV, CalDAV &Co) » Ответить

Облачные сервисы (WebDAV, CalDAV &Co)

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

Ответов - 174, стр: 1 2 3 4 5 6 7 8 9 All

SergKis: Dr. Oldwarez Посмотрите hb ...\contrib\hbtip\... и поиск по *.prg "http " в MiniGui\samples

SergKis: PS Если сервер htpps, то смотрите curl утилиту (в ней был сертификат ssl)

Петр: SergKis пишет: смотрите curl утилиту + И в дополнение Use a webdav service with curl Если получится с curl, то следующим шагом может стать переход на contrib\hbcurl


MIKHAIL: SergKis пишет: Если сервер htpps, то смотрите curl утилиту (в ней был сертификат ssl) про https: тут писали http://clipper.borda.ru/?1-4-0-00000774-000-10001-0-1570774946

Dr. Oldwarez: Это по скачиванию веб-страниц и считыванию данных с них. У меня немножко другой случай. Не веб-страница, а календарь. И много классов, которые я не нахожу в своей документации. Например TIpClientHttp, THtmlDocument. Скачал специально harbour c примерами и там в contrib\hbcurl что-то про выгрузку данных на ftp, но никак уж про CalDav. Да и формат там отнюдь не веб-страничный.

Петр: Dr. Oldwarez пишет: Скачал специально harbour c примерами и там в contrib\hbcurl что-то про выгрузку данных на ftp, но никак уж про CalDav. Там что-то про использование libcurl (инициализация, заполнение структур) на примере работы с ftp. Другие примеры на C можно найти на странице проекта. Use a webdav service with curl - это о чем?

alkresin: Не знаю, что такое CalDav и не вспомню навскидку о webdav, но предложение SergKis использовать curl мне кажется перспективным. Поиск на Яндексе по 'curl webdav' дает кучу ссылок - т.е., curl с webdav работает. Я обычно советую использовать не hbcurl, чтобы не тратить время на его изучение, а запускать непосредственно утилиту командной строки curl.exe, передавая ей файл с нужными параметрами.

Dr. Oldwarez: Про CalDAV здесь CalDAV Но мне бы всё-таки хотелось встроенную библиотеку для удобства дистрибуции. Изучить я смогу. Только дайте мне документацию, а то hbd я не знаю, чем прочесть. И несколько примеров.

SergKis: Dr. Oldwarez Рекомендую начать с curl, можно найти описание и даже примеры, а встроенную библиотеку, придется изучать по исходникам. Вот практически первый ответ на запрос google: "curl.exe и caldav запросы" https://www.atmail.com/blog/caldav-carddav/

Dr. Oldwarez: Скачал этот CURL теперь вот вопрос, что ставить в PROPFIND [pre2]curl -k --user "${login}:${password}" -X PROPFIND "https://owncloud.jujens.eu/remote.php/caldav/calendars/jujens/defaultcalendar"[/pre2] Вместо https://owncloud.jujens.eu/remote.php/caldav/calendars/jujens/defaultcalendar У меня в календаре на вкладке Subscription выходят пять адресов CalDAV Subscription URL CalDAV Account URL WebDAV/ICS Subscription URL Feed URL Embed Script Что именно ставить туда?

SergKis: Попробуйте первых 3, добавьте только параметр -O (в тек. каталоге файл)

Dr. Oldwarez: SergKis пишет: Попробуйте первых 3, добавьте только параметр -O (в тек. каталоге файл) Выходит так [pre2]c:\curl\bin>curl -k -o --user "${USERNAME}:${PASSWORD}" -X PROPFIND "https://webmail.kleeblatt.com/rpc.php/calendars/illya@kleeblatt.com/calendar~GhGVum1xWexaffEfhiVkNN7" Warning: The file name argument '--user' looks like a flag. curl: (3) URL using bad/illegal format or missing URL <?xml version="1.0" encoding="utf-8"?> <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> <s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception> <s:message>No basic authentication headers were found</s:message> <s:sabredav-version>1.8.12</s:sabredav-version> </d:error>[/pre2]

SergKis: Dr. Oldwarez флаг --user правильно задан ? curl -u username:password ...

Петр: SergKis пишет: флаг --user правильно задан ? Скорее всего правильно: флаги -u и --user равноценны. "${USERNAME}:${PASSWORD}" - пытается получить значения из переменных окружения (хотя хз, что там на самом деле). а вот -o - вывод в файл, а не stdout после -o должен следовать аргумент имя локального файла, он не указан поэтому и получили Warning: The file name argument '--user' looks like a flag

SergKis: Петр пишет хотя хз, что там на самом деле Именно это и говорил, раз получили такое сообщение Warning:... после -o должен следовать аргумент имя локального файла, он не указан после -o да, после -O не обязательно, если не указан берет имя файла из адреса без пути (для пробы и тестов пробовать можно)

Петр: SergKis пишет: после -o да Ну так у него -o а вот "${USERNAME}:${PASSWORD}" - это что-то не из винды, непонятно может msys использует. Интересно что это значит: curl: (3) URL using bad/illegal format or missing URL У меня при curl -k -oout.txt -O --user "${USERNAME}:${PASSWORD}" -X PROPFIND "https://webmail.kleeblatt.com/rpc.php/calendars/illya@kleeblatt.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\NotAuthenticated</s:exception> <s:message>Username or password does not match</s:message> <s:sabredav-version>1.8.12</s:sabredav-version> </d:error> что в принципе правильно

SergKis: Петр пишет Интересно что это значит: Из показанной выше ссылке curl и CalDav (google перевод) понял, что на сервере надо иметь рег. запись и по ней делать пошаговые запросы, получая адреса. Возможно, сообщение, как следствие не коннекта, не сталкивался с таким. Пробовал работу с ftp и передавать, получать json данные с чужим сервером.

Dr. Oldwarez: Петр пишет: У меня при curl -k -oout.txt -O --user "${USERNAME}:${PASSWORD}" -X PROPFIND "https://webmail.kleeblatt.com/rpc.php/calendars/illya@kleeblatt.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\NotAuthenticated</s:exception> <s:message>Username or password does not match</s:message> <s:sabredav-version>1.8.12</s:sabredav-version> </d:error> что в принципе правильно Вроде что-то получилось [pre2]curl -k -o test.xml --user USERNAME:PASSWORD -X PROPFIND "https://webmail.kleeblatt.com/rpc.php/principals/illya@kleeblatt.com/"[/pre2] Вышло [pre2] <?xml version="1.0" encoding="utf-8"?> <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/" xmlns:card="urn:ietf:params:xml:ns:carddav"> <d:response><d:href>/rpc.php/principals/illya@kleeblatt.com/</d:href><d:propstat><d:prop><d:getlastmodified>Fri, 19 Mar 2021 20:06:47 GMT</d:getlastmodified><d:resourcetype><d:principal/> </d:resourcetype></d:prop><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>[/pre2] Теперь, как, собственно говоря, войти в календарь и просмотреть его содержимое?

Петр: SergKis пишет: Возможно, сообщение, как следствие не коннекта, Вот нашел API error: curl: (3) URL using bad/illegal format or missing URL

Петр: Dr. Oldwarez пишет: Вроде что-то получилось curl -k -o test.xml --user USERNAME:PASSWORD -X PROPFIND "https://webmail.kleeblatt.com/rpc.php/principals/illya@kleeblatt.com/" Куда этот url ссылается? Эту часть почему отбросили /calendar~GhGVum1xWexaffEfhiVkNN7



полная версия страницы