OAuth2.0認証する方法について調べてみた。
目標
ラズパイのCPU温度を定期的にロギングしてアップロードしたい。
前回
GASのdoGet関数でFusionTablesAPIを叩く。
ログイン要求された。手入力が必要になってしまい詰んだ。自動化したいのに。
今回
Fusion Tables API v2について改めて調べてみる。ポイントは認証について。
自動化するという目標は一旦忘れる。「Fusion Tables APIによるinsertの実行には手入力が必要である。OAuth2.0による認証を用いると自動化はできない。」ということをはっきりさせるために調査する。はっきりすれば諦めもつく。たとえ手動による操作があっても、PythonからFusionTablesAPIを使ってinsertできることが仮の目標とする。
対象環境
- Firefox 50.0
- Google Account
- Google Developers Console
- Google Drive
- Google Fusion Tables
- Google Apps Script
- Python 2.7/3.4
Fusion Tables API v2
Fusion Tables API v2のUse the APIページをみてみる。
Fusion Tables APIに触ってみたときも少し調べた。しかし、APIKeyを取得し、URLパラメータのkey
に指定しても、Login Required
エラーで実行できなかった。
今回は、もう一つの方法であるOAuth2.0認証について調べてみる。
Using OAuth 2.0 to Access Google APIs
ググって見るとこちらをみつけた。OAuth2.0認証以外は受け付けないらしい。Using OAuth 2.0 to Access Google APIsページを見てみる。
OAuth2.0認証の流れ
- Google Developers Consoleにて、Client Id, Client SecretなどのOAuth2.0認証情報を取得する
- AccessTokenを取得する
- AccessTokenをAPIに送る
- どうやって付与するかは不明
- AccessTokenを更新する
- 寿命が限られているので更新する必要があるらしい。期間がいつまでかは不明
やはりログイン要求がされるらしい。ログインは自動化できないのか。
Google Sign-in
Fusion Tables API v2のUse the APIページをみてみると、Google Sign-inへのリンクがあった。認証の一部を自動化できるらしい。Sign-inについてはこちらを参考にさせていただいた。感謝。
Google Sign-inのガイドメニューをクリック。Plain OAuth 2.0
のところに、Web applications:
とInstalled applications:
の両方の場合のリンクがある。どちらもPython
がある。たぶんOAuth2.0認証ライブラリがあるのだろう。
利用者 | 言語 |
---|---|
Web applications | Python |
Installed applications | Python |
コードの説明があった。ここから先はライブラリをダウンロードしてコードを書いてみないとわからない。
所感
OAuth2.0認証でAPIを使うには、Google API Client Libraryを使うようだ。
しかし、OAuthだのSign-inだの、いまいち要領を得ない。さっさと動くコードを書いて確かめたほうがいいか。ライブラリに関しての詳細は次回しらべる。