こんにちは!大嶋です!
Google APIsを使うための認証に、PythonライブラリのOAuth 2.0を使っている方もいらっしゃるのではないでしょうか。しかしそのOAuth 2.0も非推奨となってしまいました。
今回はGoogle APIsの使用にあたり推奨されている認証方法を紹介したいと思います。
本記事でわかること
- 推奨されているgoogle_auth_oauthlibの認証方法と認証例
- google_auth_oauthlibを使ったGoogle Groupの作成
推奨されているgoogle_auth_oauthlibの認証方法と認証例
認証方法
Google APIsを使った認証にgoogle_auth_oauthlibが推奨されるようになりました。
元々はPythonライブラリのOAuth 2.0を多くの方が利用していたと思うので、google_auth_oauthlibに変更が必要になりますね。
認証例
google_auth_oauthlib.flowモジュールを参考に認証を通すことができます。
google_auth_oauthlibを使ったGoogle Groupの作成
それでは実際にgoogle_auth_oauthlibを使って認証を通しています。
今回はGoogle Groupを作成するためのAdmin SDK APIをスコープとして、上記例をもとに作成しています。
from google_auth_oauthlib.flow import Flow
import pprint
import requests
import googleapiclient.discovery
flow = Flow.from_client_secrets_file(
#Google CloudのOAuth 2.0 クライアントIDから取得しています
#https://console.cloud.google.com/apis/credentials?project=
#またOAuth同意画面にて公開範囲を設定する必要があります
#https://console.cloud.google.com/apis/credentials/consent?project=
'XXX.apps.googleusercontent.com.json',
scopes=[
'https://www.googleapis.com/auth/admin.directory.group', #Google Groupを作成するためのスコープ
],
redirect_uri='urn:ietf:wg:oauth:2.0:oob')
# 認証取得
auth_url, _ = flow.authorization_url(prompt='consent')
print('Please go to this URL: {}'.format(auth_url))
# 認証コードの取得
code = input('Enter the authorization code: ')
flow.fetch_token(code=code)
# アクセストークンを取得した後のセッションを使用する
session = flow.authorized_session()
# 新しいグループの情報を設定
group_info = {
"email": "グループのメールアドレス", #グループのメールアドレスを記載
"name": "グループ名", #グループ名を記載
"description": "説明", #グループの説明を記載
}
# 新しいグループを作成
create_group_url = 'https://admin.googleapis.com/admin/directory/v1/groups'
response = session.post(create_group_url, json=group_info)
まとめ
非推奨となっていたOAuth 2.0の代わりに、google_auth_oauthlibを使ってGoogle APIsを認証してみました。今回はグループを作成しましたが、この認証方法で他のGoogle APIsの利用にも応用できるので、どんどん使っていきたいですね。
おわり。
Google および Google Cloud Platform™ service は Google LLC の商標であり、この記事は Google によって承認されたり、Google と提携したりするものではありません。
コメント