はじめに
なんかこう1年のまとめって年末にするのめんどくさいなぁ~って思ってグーグルカレンダーからしょっぴけばよくね?って思ったわけ。で、意外に簡単そうだなってのが第一印象だったんだけど、てっきり「俺のカレンダー」みたいな感じでパッと持ってこれると思ってたら「credentials」とかいう認証情報をダウンロードしてプログラムファイルと同じディレクトリに置いたりしないといけないらしい...。もしかしてAPIからのダウンロード、配置をユーザーにやらせるの??なんか大企業にはびこる クソメーラー Notesを彷彿とさせますね...。あっ、違うのかな、API使用責任者が僕(の認証情報)ってこと?さて、マイブームとしての英語能力強化期間なので、英語のAPIページを生で読んでいくぜ!
参考ページ
Step 1: Turn on the Google Calendar API
「DOWNLOAD CLIENT CONFIGURATION」を押してダウンロードされたらプログラムがあるディレクトリに置け
補足
APIキーは、ユーザーデータにアクセスする必要がない場合
OAuth 2.0は、不特定多数のユーザーのデータにアクセスする必要がある場合
サービスアカウントは自身のアカウントや会社の顧客などにアクセスする場合
あー、サービスアカウントだったんだな。
Step 2: Install the Google Client Library
グーグルクライアントが使うライブラリをインストールしろ!
C:\Users\yoshi> pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Step 3: Set up the sample
import datetime
# 2019-02-06T06:00:00+09:00 > 2019/02/06 06:00:00
def ConvertIso2YMDHMS(v):
return(datetime.datetime.fromisoformat(v).strftime("%Y/%m/%d %H:%M:%S"))
Step 4: Run the sample
> python main.py
・自動的に認証画面が出てくる
あっそういうことね。勝手に出てきた。
・もういっちょ実行
おー、でてきたやんけ。給料日近いやん!
> python main.py
Getting the upcoming 10 events
2019-02-05T21:00:00+09:00 7印刷)さくらのVPS請求書
2019-02-06T06:00:00+09:00 燃えないゴミ
2019-02-06T19:00:00+09:00 フロントエンドもくもく会 #22
2019-02-07T17:00:00+09:00 スピードラーニング・本気コースイングリッシュチェック
2019-02-10 給料日
2019-02-10T10:00:00+09:00 NISA引き落とし 33,000
2019-02-10T21:00:00+09:00 【57,073 支払】クレジットカード
2019-02-11T21:00:00+09:00 board請求書
2019-02-14T21:00:00+09:00 Meetup領収書発行される
2019-02-17T21:00:00+09:00 freee請求書発行される
今回一番手こずったのが日時のフォーマット(SQLServerにInsertできない)
「2019-02-06T06:00:00+09:00」から「2019/02/06 06:00:00」に変える必要があった
> python main.py
2019-02-05 20:00,python公式doc 「isoformat 語尾z いらない」にヒントありそう。yyyy-MM-ddTHH:mm:ssZ。zへらして、セパレート に空白指定すれば終わる??https://docs.python.jp/3/library/datetime.html
2019-02-06 06:00,燃えないゴミ
2019-02-06 06:30,粉コーヒー買って
2019-02-06 19:00,フロントエンドもくもく会 #22
2019-02-07 17:00,スピードラーニング・本気コースイングリッシュチェック
2019-02-10 00:00,給料日
2019-02-10 10:00,NISA引き落とし 33,000
2019-02-10 21:00,【57,073 支払】クレジットカード
2019-02-11 21:00,board請求書
2019-02-14 21:00,Meetup領収書発行される
トラブルシューティング
APIからダウンロードした「credentials.json」と自動生成される「token.pickle」をそれぞれ「credentials」「token」フォルダにしまって整理しようとしたらうまく実行できなくなったから、なにがなんでも main.py のとこに置かないといけないみたい。