min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash Linux コンソール上でGoogle カレンダーを使う(python3でOAuth認証 Google Caledar API使用)→ 成功

Googleカレンダーの予定をテキストでLinuxbash)コンソールに出したくて以前挑戦したが、失敗していた。

min117.hatenablog.com

 

リトライする。このサイトどおりにやったらうまくいった

dev.classmethod.jp

 

まずは結果から。実行すると

f:id:min117:20190302144335p:plain

こうなる。カレンダーの情報がワーっと画面に現れる。

f:id:min117:20190302140846p:plain

これを作る。

 

<準備>

まずは Google Cloud Platform でAPIを有効にし「client_secret.json」ファイルを入手する。

console.developers.google.com

https://console.developers.google.com/start/api?id=calendar&hl=ja

 

冒頭サイトの案内どおり進めていく。

f:id:min117:20190302141145p:plain

 

「OAhth 同意画面」でアプリ名を適当に決める。

f:id:min117:20190302141340p:plain

 

「設定情報」から「OAuthクライアントID」に行って

f:id:min117:20190302141551p:plain

 

クライアントID名も決める。これも適当でよい。

f:id:min117:20190302141438p:plain

クライアントシークレットのjsonファイル(client_secret_長ったらしい名前.json)のリンクができるので、クリックしてダウンロードする。

 

ダウンロードしたファイルをclient_secret.json」にリネームする。

f:id:min117:20190302141817p:plain

 

<ソース記述>

あとは冒頭サイトの写経で「quickstart.py」を作る。自分の環境では(あとから探しやすいとか色々理由があり)ファイル名は GetGoogleCalendar_quickstart_.py とした。

 

$ vim GetGoogleCalendar_quickstart_.py

f:id:min117:20190302142032p:plain

冒頭サイトのとおりのコードを書く。

f:id:min117:20190302142132p:plain

29行目以下は省略。

 

 

 

client_secret.json ファイルとGetGoogleCalendar_quickstart_.py 同じフォルダに置いた状態でpyのほうを実行する。

 

$ python3 GetGoogleCalendar_quickstart_.py 

 

処理は正常に流れたが、Googleへのアクセス許可画面で「コンソール版のブラウザ」が起動してしまった。これでは(javascriptが動かないので)認証ができない。

f:id:min117:20190302141937p:plain

 

vncLinuxサーバに入り直し、GUIから Terminal(LXterminal)を開いてやり直す。

f:id:min117:20190302143542p:plain

 

いい感じ。

f:id:min117:20190302140442p:plain

 

Chromeが起動して認証を求められる。Googleカレンダーのアカウントの認証情報を入れる(APIを取ったアカウントとは別でもいいみたい)

f:id:min117:20190302140548p:plain

 

The authentication flow has completed. と出た。

f:id:min117:20190302140630p:plain

 

そのあとカレンダーの情報がワーっと画面に現れる。素晴らしい。

f:id:min117:20190302140846p:plain

 

次回はこの画面をgrepして「予定を見たい日」だけにフィルタしたうえで、メールで自分に飛ばすようにする。成功したらcronに入れて定期的なお知らせにするつもり。