Googleカレンダーの予定をテキストでLinux(bash)コンソールに出したくて以前挑戦したが、失敗していた。
リトライする。このサイトどおりにやったらうまくいった。
まずは結果から。実行すると
こうなる。カレンダーの情報がワーっと画面に現れる。
これを作る。
<準備>
まずは Google Cloud Platform でAPIを有効にし「client_secret.json」ファイルを入手する。
https://console.developers.google.com/start/api?id=calendar&hl=ja
冒頭サイトの案内どおり進めていく。
「OAhth 同意画面」でアプリ名を適当に決める。
「設定情報」から「OAuthクライアントID」に行って
クライアントID名も決める。これも適当でよい。
クライアントシークレットのjsonファイル(client_secret_長ったらしい名前.json)のリンクができるので、クリックしてダウンロードする。
ダウンロードしたファイルを「client_secret.json」にリネームする。
<ソース記述>
あとは冒頭サイトの写経で「quickstart.py」を作る。自分の環境では(あとから探しやすいとか色々理由があり)ファイル名は GetGoogleCalendar_quickstart_.py とした。
$ vim GetGoogleCalendar_quickstart_.py
冒頭サイトのとおりのコードを書く。
29行目以下は省略。
client_secret.json ファイルとGetGoogleCalendar_quickstart_.py とを同じフォルダに置いた状態でpyのほうを実行する。
$ python3 GetGoogleCalendar_quickstart_.py
処理は正常に流れたが、Googleへのアクセス許可画面で「コンソール版のブラウザ」が起動してしまった。これでは(javascriptが動かないので)認証ができない。
vncでLinuxサーバに入り直し、GUIから Terminal(LXterminal)を開いてやり直す。
いい感じ。
Chromeが起動して認証を求められる。Googleカレンダーのアカウントの認証情報を入れる(APIを取ったアカウントとは別でもいいみたい)
The authentication flow has completed. と出た。
そのあとカレンダーの情報がワーっと画面に現れる。素晴らしい。
次回はこの画面をgrepして「予定を見たい日」だけにフィルタしたうえで、メールで自分に飛ばすようにする。成功したらcronに入れて定期的なお知らせにするつもり。