#php #macos #applescript #automator
#php #macos #applescript #automator
Вопрос:
У меня есть сервер Mac, который я использую для размещения своего веб-сайта. Я создал веб-страницу с использованием PHP, который в основном используется для назначения встреч. Страница позволяет пользователю выбрать дату и время встречи и нажимает кнопку отправки, чтобы отправить ее на сервер. Я могу получать выбранные значения на стороне сервера.
Теперь я хочу написать apple script или создать действие automator, которое создаст запись в моем iCal на основе данных, полученных через PHP-страницу.
Как я могу создавать встречи в моем mac service_cal с информацией, которую я получаю на странице PHP? Правильно ли я думаю, чтобы пользователь Apple script или automator добавил назначение в мой ical?
Ответ №1:
Вы можете запускать applescripts с
shellexec("аргументы osascript /path/to/script.scpt");
Затем извлеките его вывод из возвращаемой переменной.
Комментарии:
1. Это должно сработать, но помните, что пользователь с копией iCal, к которому вы хотите добавить события, должен всегда входить в систему, чтобы это сработало (например, это не сработает из окна входа в систему или с запущенной экранной заставкой, защищенной паролем).
Ответ №2:
Я понятия не имею, как работает applescript, но если вы просто хотите выполнить команду командной строки, вы можете использовать system()
Ответ №3:
Другой способ решить эту проблему — вместо вызова AppleScript с PHP и попыток программировать вокруг всех крайних случаев, которые могут привести к сбою (пользователь делает что-то еще на сервере, пользователь не вошел в систему, выполнение AppleScript занимает слишком много времени и т.д.), сервер просто записывает файл iCal для каждой встречи в определенный каталог. Затем выполните действие iCal / Automator, которое выполняется периодически (например, каждые 5 минут), которое импортирует новый файл appointment iCal из указанного каталога и удаляет его, как только он был импортирован в iCal.
Что касается создания iCal-файлов с PHP, то, похоже, существует множество библиотек, предлагающих эту функциональность, включая: Benuu, qCal, iCalcreator, iCal Maker и, вероятно, другие. Любой из них должен позволить вам сгенерировать файл .ics
or .ical
, совместимый с iCal и легко импортируемый. Файл iCal, безусловно, более переносим, чем попытки передавать различные биты данных, такие как имя, дата и время, местоположение и т.д., в AppleScript.
А для периодического запуска действия AppleScript / Automator вы можете использовать отличное приложение Lingon, хотя оно появилось в App Store только сейчас. Также можно вручную записать launchd
.plist
файлы (см. man launchd.plist
).