raspberry piでGoogleカレンダー取得スクリプトのセットアップ
raspberry piでGoogleカレンダー取得スクリプトのセットアップ
raspberrypiでGoogleカレンダーの取得ができるプログラムをkaraage氏が公開しています
上記Googleカレンダー取得スクリプトですが、若干手間取ったのでメモ
※2018年9月時点に確認。
発生したエラー
pyファイルダウンロード直後の以下コマンド実行でエラーが発生した
pi@raspberrypi:~ $ python get_gcal_schedule.py Traceback (most recent call last): File "get_gcal_schedule.py", line 7, in <module> from oauth2client import client ImportError: No module named oauth2client
oauth2clientがないため実行に失敗したようです。
oauth2clientのインストール
pi@raspberrypi:~ $ sudo pip install --upgrade oauth2client --ignore-installed six
再実行
pi@raspberrypi:~ $ python get_gcal_schedule.py /usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access /home/pi/.credentials/calendar-python-quickstart.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Traceback (most recent call last): File "get_gcal_schedule.py", line 91, in <module> get_schedule() File "get_gcal_schedule.py", line 60, in get_schedule credentials = get_credentials() File "get_gcal_schedule.py", line 45, in get_credentials flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) File "/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py", line 133, in positional_wrapper return wrapped(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 2135, in flow_from_clientsecrets cache=cache) File "/usr/local/lib/python2.7/dist-packages/oauth2client/clientsecrets.py", line 165, in loadfile return _loadfile(filename) File "/usr/local/lib/python2.7/dist-packages/oauth2client/clientsecrets.py", line 125, in _loadfile exc.strerror, exc.errno) oauth2client.clientsecrets.InvalidClientSecretsError: ('Error opening file', 'client_secret.json', 'No such file or directory', 2)
calendar-python-quickstart.jsonの入手
ここが一番詰まりました。結果としては、以下サイトのSTEP3の実行を行うことで自動的に生成されました
dev.classmethod.jp
STEP3項のソースを「quickstart.py」としてルートディレクトリに格納し、実行しましょう
pi@raspberrypi:~ $ python quickstart.py /usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access /home/pi/.credentials/calendar-python-quickstart.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=361305561604-fvr9cg1fmun1elgn2a4ff2joomgalqes.apps.googleusercontent.com&access_type=offline If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
このタイミングでブラウザが起動します。ログインして認証しましょう。
以後get_gcal_schedule.pyが正常に動作するようになります。
※quickstart.pyのソースがget_gcal_schedule.pyに組み込まれているので、うまく行きそうな気はするんですが、原因は謎です。