最近は減ってきましたけど、まだまだ大学生はオンライン授業ですよね。僕も毎週金曜日はオンライン授業です。毎日毎日学校行ってるんだからオンライン授業の日ぐらいはゆっくり眠っても許されると思わないですか?
そんなわけで自動でzoomに入室してくれるようなプログラミングをしてみました。
※残念ですけど、windowsには対応してないです。。ごめんなさい。でも記事は読んでください。
#目次
- 環境
- 技術について
- automatorを使ったやり方
- AppleScript
- カレンダー
- macの設定(共通です)
- cronを使ったやり方
- AppleScript
- cron
- macの設定(共通です)
- automatorを使ったやり方
- 最後に
- お世話になったサイト
#環境
mac OS Catalina 10.15.7
技術について
##automatorを使ったやり方
最初はmacに標準で入っているautomatorと呼ばれるアプリを活用しようと模索しました。
簡単にこのautomatorについて説明するとmacのいろんな作業を自動化してくれるすごいやつです。
例えばautomatorで作成したプロジェクトを起動するとゴミ箱の中が空になるとか。色々と便利そうなのでちゃんと活用したら楽しそうです。
###AppleScript
引用です。
AppleScriptは、マウスやキーボードを使わずに、Macを操作する方法です。すなわち「AppleScriptはメイドのようなもの」と言ってもいいでしょう。
macを操作してzoomに入るのから必須です。(コピペでいけました。)
実際に詳しいことはここに書くよりも調べた方がいい記事が出ると思うので実際使用したコードだけ載せときます。
tell application "Google Chrome"
open location "https://zoom.us/j/{zoomのID}"
activate
end tell
tell application "zoom.us"
activate
tell application "System Events"
delay 3
keystroke "{password}"
key code 76 -- Enterを意味します。
end tell
end tell
うちの学校は同じzoomID、パスワードで定期的なミーティングとして設定しているので固定です。
簡単に解説すると上の四行でGoogle Chromeで授業のURLにアクセス
下の八行でパスワードを入力してます。
zoomのアプリからIDとパスワードを入力と言う形にしなかったのは単純にキー操作でzoomのtopから参加までアクセスできなかったからです。(マウス操作を記憶し、実行というのもあるにはあるのですが、汎用性を高めたかったのと、プログラミングしたかったのでプログラムを書きました。)
ここで1度実行してみてください。
そうすると画面上部に下のようなものが出てくるのでその中のzoom.usでのこのタイプのリンクは常に関連づけられたアプリで開くのチェックボックスをチェックを入れてください。(チェックすると次回以降リンクで飛ぶと勝手にzoomアプリが起動するようになります。)
あと、ダイアログで権限関係のエラーが出ると思うので、環境設定から許可してください。(確かアクセシビリティだと思います。)
適当にデスクトップにでも保存してください。
###カレンダー
ここまでで自動で授業に参加できるプログラムは完成しました。ここからは毎週自動で授業に参加するために自動で起動されるようにしましょう。
定期的に実行するのはめんどくさそうと思っていたのですが、そこは天下のapple様。カレンダーから実装できてしまいます。
- カレンダーで実行したい時間にイベントを作成します。
- 通知の設定を新規で設定します。
- カスタムをクリックし、時間をイベントの開始時間に設定します。
- サウンド付きメッセージの項目をクリックし、ファイルを開くをクリック
- その下のカレンダーをクリックし、先ほど保存したautomatorのプロジェクトを選択してください。
いろんな記事を漁った結果以上の方法が出てきました。ですが、自分は通知のところからなぜか上記で設定したファイルを開くという通知が消えてしまうんですよね。。困ったな。。と
###macの設定1
ここまできてまだ設定かよと思った方。抜けています。
なんとこのスケジュールmacが開いていないと動きません!(当たり前)
なのでシステム環境設定>省エネルギー>スケジュールから先ほど設定した授業の時間の3分前にでもスリープが解除されるように設定しましょう。
これであなたはオンライン授業の日はぐっすり眠れます。お疲れ様です。
##cronを使ったやり方
先ほど書いた通り、スケジュールがうまく動作しないので、他の方法を考えました。
救世主cronの登場です。
###AppleScript
ソースコード自体は先ほど書いたものと全く一緒です。
tell application "Google Chrome"
open location "https://zoom.us/j/{zoomのID}"
activate
end tell
tell application "zoom.us"
activate
tell application "System Events"
delay 3
keystroke "{password}"
key code 76 -- Enterを意味します。
end tell
end tell
名前は適当に設定してデスクトップにでも保存してください。
###cron
最初はcronを使ってさっき作成したautomatorのプロジェクトを起動すれば完璧やん!!!って考えてたんですけど、40分ぐらい格闘したんですけど、最後は権限の問題が大きかったです。あるファイルを削除すると実行されると書かれていたのですが、削除は怖いので諦めました。
となると普通のAppleScriptのファイルを実行するっていうコマンドを書けば完成だと。もうここまでくれば終わったも同然です。
一点、terminalからAppleScriptを実行するにはosascriptをつけないといけないです。
osascript {プロジェクトまでのパス}/{ファイル名}
terminalを開き
$ crontab -e
#設定例
#デスクトップに保存しているのなら
#毎週金曜日9時21分指定のAppleScriptファイルを実行
21 9 * * 5 osascript /Users/{あなたの名前}/Desktop/AutoParticipantClass.scpt
設定されているかどうかを確認するには下のを実行しましょう。
$ crontab -l
###macの設定2
上と同じです。
お疲れ様でした。
#最後に
最初automatorの存在を知らずに、どうやるんだろうか悩んでいたところに「automator知らんの?」と教えてくれた人がいました。
それを聞いてから着手し、大体2時間ぐらいで完成しました。(記事書くのに2時間かかりました。)途中無駄足踏んだ利もしたんですけど、なんとか形になってよかったです。
初めてこうやってアウトプットしてみました。思ったよりも大変ですね。何よりタイピングしすぎて肩が痛いです。
よかったらmacユーザーの人はこれで授業を自動で入室するようにしてぐっすり寝ましょう。
no sleep no life ですよ。
もう3時なんで寝ます。おやすみなさい。
何か気づいたことがあったらコメントで教えてください
#お世話になったサイト
http://tonbi.jp/AppleScript/Introduction/01/
https://mac-tegaki.com/basic-usage/safari-applescript.html
https://kinopy-techhack.hateblo.jp/entry/180308
https://dev.classmethod.jp/articles/applescript-sample/
https://aichanworld.com/wd/2017/03/03/mac%E3%81%AE%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%84%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/
https://shinmedia20.com/mac-cron
https://support.apple.com/ja-jp/guide/terminal/trml1003/mac
https://www.yoheim.net/blog.php?q=20190902