Сервер Mac — вызывает applescript / automator с PHP

#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 ).