Mac服务器-从PHP调用applescript/automator

Mac服务器-从PHP调用applescript/automator,php,macos,applescript,automator,Php,Macos,Applescript,Automator,我有一个Mac服务器,我用它来托管我的网站。 我使用PHP创建了一个网页,基本上用于创建约会。该页面允许用户选择约会的日期和时间,并单击提交按钮将其发布到服务器。 我能够在服务器端接收所选的值 现在我想编写apple脚本或创建automator动作,它将根据通过PHP页面接收的数据在iCal中创建一个条目 我如何在mac Server ical中创建约会,并在PHP页面中获得详细信息? 我想使用apple script或automator将约会添加到我的ical中是否正确?我不知道applesc

我有一个Mac服务器,我用它来托管我的网站。 我使用PHP创建了一个网页,基本上用于创建约会。该页面允许用户选择约会的日期和时间,并单击提交按钮将其发布到服务器。 我能够在服务器端接收所选的值

现在我想编写apple脚本或创建automator动作,它将根据通过PHP页面接收的数据在iCal中创建一个条目

我如何在mac Server ical中创建约会,并在PHP页面中获得详细信息?
我想使用apple script或automator将约会添加到我的ical中是否正确?

我不知道applescript是如何工作的,但如果您只想发出命令行命令,可以使用

使用shellexec(“osascript/path/to/script.scpt参数”)运行applescripts

shellexec("osascript /path/to/script.scpt arguments");
而不是从返回的变量中获取它的输出。

解决此问题的另一种方法是,不要从PHP调用AppleScript并尝试围绕可能导致其失败的所有边缘情况进行编程(用户在服务器上执行其他操作、没有用户登录、AppleScript运行时间过长等),就是让服务器为每个约会写一个iCal文件到一个特定的目录。然后定期(例如每5分钟)执行iCal/自动操作,从所述目录导入新的约会iCal文件,并在导入iCal后将其删除

就从PHP创建iCal文件而言,似乎有许多库提供了此功能,包括:、、甚至更多。其中任何一个都应允许您生成与ical兼容且易于导入的
.ics
.ical
文件。iCal文件当然比试图将诸如名称、日期和时间、位置等各种数据位传递给AppleScript更具可移植性


而且,为了定期运行AppleScript/Automator操作,您可以使用优秀的应用程序,尽管它现在只是AppStore。您也可以手动编写
launchd
.plist
文件(请参阅)。

这应该可以,但请记住,要想将事件添加到iCal副本中,必须始终登录iCal的用户才能使用此文件(例如,在登录窗口或运行密码保护的屏幕保护程序时,它将无法工作)。