Как взаимодействовать с сервером CalDAV от Ruby? [закрытый]
Мне нужно создать события на сервере календаря, используя CalDAV из приложения Ruby (Rails, чтобы быть точным). Я просмотрел несколько разных библиотек и немного погуглил.
Я посмотрел на РИ-кала (http://ri-cal.rubyforge.org/rdoc/ ), но не был уверен, что он поддерживает отправку данных на сервер или если я должен был сделать это сам,
это выглядело многообещающе http://www.local-guru.net/blog/pages/rubycaldav, но он говорит, что это альфа софт, мне нужно что-то стабильное.
каков наилучший способ сделать это? Есть ли какая-либо библиотека, которая уже делает это, нужно ли мне формировать собственные HTTP-запросы?
любые советы по этому вопросу appreceated
4 ответов
Я закончил с использованием библиотеки http://www.local-guru.net/blog/pages/rubycaldav
мне пришлось адаптировать его работу с SSL и правильно использовать библиотеку UUID, правильно форматировать даты и работать с событиями полного дня. Поскольку мне нужно было только создавать и уничтожать события, которые я обновил. Я планирую сделать больше, когда у меня есть время.
мой обновленный код можно найти здесь https://github.com/loosecannon93/ruby-caldav.
проблема, с которой я столкнулся, заключалась в неправильном форматировании дат и отсутствии UUIDs.
на caldavtest.rb
файл на GitHub - это то, что я использовал для работы
дополнительным осложнением, с которым я столкнулся, было то, что Zimbra ( сервер ) имеет 2 пути, один для файлов ICS, которые только для чтения /home/user@host/Calender
и один для CalDAV /dav/user@host/Calendar
Я надеюсь, что кто-то может помочь найти это решение.
однако существует существенный недостаток реализации cladav для Руби. Есть библиотеки ICS, которые формируют объекты, но есть только чистая Net::HTTP для взаимодействия с сервером. Local-guru-единственный Рубин, который я нашел, который работает в обоих направлениях, но он нуждается в некоторой помощи с незначительными проблемами.
я исправил некоторые из них, но не проект, я просто пришлось заставить его работать. Но если кто-то хотел бы внести свой вклад, я хотел бы помочь.
одно из моих любимых мест для проверки возможных вариантов включено Ruby Toolbox. Это будет одно из первых мест, где я проверю.
Я бы также проверил github, который дал результат что может быть вашим самым лучшим вариантом и как раз чего вы ищете.
Что касается ответов на ваши другие вопросы, я, вероятно, сверну свой собственный, взглянув на оба этот пост и этот код.
Итак, длинный ответ сильно сокращен, да, есть библиотеки, которые уже выполняют то, что вы хотите сделать, но на моем месте я бы свернул свое собственное решение для чего-то такого конкретного.
вы размещаете свои календари в google? если да, то посмотрите на: https://github.com/northworld/google_calendar
мы использовали caldav4j как наше приложение было развернуто в последние. Не знаю, подходит ли это вам.