読者です 読者をやめる 読者になる 読者になる

やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

OAuth2.0認証する方法ついて調べてみた

ワークフロー

OAuth2.0認証する方法について調べてみた。

目標

ラズパイのCPU温度を定期的にロギングしてアップロードしたい

前回

GASのdoGet関数でFusionTablesAPIを叩く

ログイン要求された。手入力が必要になってしまい詰んだ。自動化したいのに。

今回

Fusion Tables API v2について改めて調べてみる。ポイントは認証について。

自動化するという目標は一旦忘れる。「Fusion Tables APIによるinsertの実行には手入力が必要である。OAuth2.0による認証を用いると自動化はできない。」ということをはっきりさせるために調査する。はっきりすれば諦めもつく。たとえ手動による操作があっても、PythonからFusionTablesAPIを使ってinsertできることが仮の目標とする。

対象環境

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認証の流れ

  1. Google Developers Consoleにて、Client Id, Client SecretなどのOAuth2.0認証情報を取得する
  2. AccessTokenを取得する
    • scopeパラメータでアクセスできるAPIを制御する
    • 取得方法はいろいろあるらしい
    • Google Account でログインすることを要求する場合があるらしい(前回のエラーはこれか?)
  3. AccessTokenをAPIに送る
    • どうやって付与するかは不明
  4. 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だの、いまいち要領を得ない。さっさと動くコードを書いて確かめたほうがいいか。ライブラリに関しての詳細は次回しらべる。