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だの、いまいち要領を得ない。さっさと動くコードを書いて確かめたほうがいいか。ライブラリに関しての詳細は次回しらべる。