2016/04/01更新

[Python] Google各種サービスのAPIの認証方法(v.2)

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
Googleの各種サービスをAPI経由で利用する場合の、認証方法がv2から変わったみたいなので、それをブログに書きたいと思います。

画像

新しい認証方法の実装

Googleの各種サービスをサービスアカウントで使う場合に、oauth2clientライブラリのSignedJwtAssertionCredentialsで認証周りを実装していましたが、該当ライブラリのversion2からはSignedJwtAssertionCredentialsがなくなっちゃったようです。代わりに以下のように実装します(以下の例はGoogle Analyticsですが、認証周りは他サービスも一緒です)。
from oauth2client.service_account import ServiceAccountCredentials
from httplib2 import Http
scopes = ["https://www.googleapis.com/auth/analytics.readonly"]
json_file = "client_secret.json"
credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file, scopes=scopes)
http_auth = credentials.authorize(Http())
service = apiclient.discovery.build("analytics", "v3", http=http_auth)
ここでのポイントはServiceAccountCredentialsを使うところです。このクラスを使って、各サービスへアクセスできるservice変数を生成します。上記はGoogle Analyticsの利用ですが、スコープやサービスの指定を変えることで、他のGoogleサービスも同様に認証できます。

なお、Google Developer本家の説明は以下のページです。こちらではp12ファイルでの認証方法の実装も載っています。
https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests



関連情報

GoogleサービスのAPI利用については、以下でブログを書いています。参考になれば幸いです。

[Python] Google AnalyticsをAPI経由で使う

[Python] Google SpreadSheetをAPI経由で読み書きする



最後に

今回はGoogleサービスのAPI利用時の認証方法についてブログを書きました。実装当時はv2が出たばかりかなかなか情報を見つけられず苦労しました(自分の検索力の問題か)。今後の自分の実装のため、他の方の実装のために少しでも役立てればと思います。

最後になりますが本ブログでは、フロントエンド・Python・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。