[FileMaker] Apple events をターミナルに送れない(未解決)

Mojave を再インストールして発生した問題。

以前 FileMaker で Twitter bot を作る方法を書いた。

FileMaker で Twitter に投稿する – with a Christian Wife
https://wacw.cf/2019/04/05/tweet-by-filemaker/

これはターミナルで FileMaker のデータを拾って Twitter に投稿する仕組みだった。その際、スクリプトで Perform AppleScript を使い、ターミナルを開くことになる。

しかし、Mojave の再インストール後に同じことをしようとすると、"Not authorized to send Apple events to Terminal." と表示され、OK を押すとさらに "Unknown Error: -1743" と表示されるようになった。ターミナルは開くが、肝心のコマンドが実行されない。

私は FileMaker のスクリプトの実行を cron で管理したいので、Automator を使ってスクリプトの実行をアプリケーション化していた。すなわち、Twitter bot を実現するために以下のような流れにしている。

(1)Automator で作ったアプリケーションで FileMaker のスクリプトを実行。ツイート内容を決める。
(2)1のスクリプトでさらに AppleScript を実行。
(3)2の AppleScrpit で、ターミナルでツイートするコマンドを実行(Tw を使用)。

これを初回に実行する際は、アクセスを許可するプロンプトが表示されるので OK を押すと、Automator および1のアプリケーションが System Preferences > Security & Privacy > Privacy > Accessibility に追加され、チェックが入った状態になる。

また、Automation という項目が、System Preferences > Security & Privacy > Privacy に追加され、1のアプリケーションの小項目として System Events.app という項目ができチェックが入った状態になる。

通常はこの状態になれば FileMaker から AppleScript を実行してターミナルを開き、コマンドが実行されるはずなのの、エラーが表示されるのだ。

海外の情報でいろいろ解決策が紹介されていたが、どれを試しても変わらなかった。たとえば以下のようなことをした。

・一旦 Accessibility に追加された項目を削除してみる。
・System Preferences > Security & Privacy > Privacy > Full Disk Access に Automator を追加してみる。
・System Preferences > Security & Privacy > Privacy > Full Disk Access にターミナルを追加してみる。
・以下のコマンドで Automation の項目を一旦削除してみる。
$ tccutil reset AppleEvents; tccutil reset SystemPolicyAllFiles

このエラーは Mojave で発生するようになったらしい。私の環境では再インストール前の Mojave ではうまく動いていたのはなぜだろう。

仕方ないので、Twitter bot を作る別の方法を考えよう。

参考:
Mojave: not authorized to send Apple events |
https://applehelpwriter.com/2018/09/24/mojave-not-authorized-to-send-apple-events/

macOS Mojave, Automator “Not authorized to send Apple events to System Events.” – Stack Overflow
https://stackoverflow.com/questions/51299066/macos-mojave-automator-not-authorized-to-send-apple-events-to-system-events