こんにちは。サイオステクノロジーの木村です。
今回は、Google Workspace Directory APIを使用して、PythonにてGoogleグループを作成する方法を記載します。
※ Google Workspace Directory API についての詳細はこちらの公式サイトをご参照ください。
プロジェクト作成・API有効化・サービスアカウント作成
Google Workspace Directory API を使用してアプリを作成するために、以下の作業を行います。
- Google Cloud プロジェクトの作成
- プロジェクトでの Admin SDK 有効化
- 認証情報(サービス アカウント)の作成
以下にその手順を記載します。
1. 以下のURLにアクセスし、Google Cloud Console に管理者でログインします。
https://cloud.google.com/console
2. メニューより、「IAM と管理」 – 「プロジェクトを作成」をクリックします。
3. プロジェクト名に任意の名称を入力し、プロジェクトを配置する組織・場所を選択して「作成」をクリックします。
4. プロジェクトの作成が完了すると以下のような通知が表示されますので、「プロジェクトを選択」をクリックします。
5. 画面上部のプルダウンに作成したプロジェクトが選択されていることを確認します。
「APIとサービス」 – 「有効なAPIとサービス」をクリックします。
6. 「+APIとサービスの有効化」をクリックします。
7. 検索欄に「Admin」と入力して、Enterを押下します。
8. 検索結果に表示された「Admin SDK API」をクリックします。
9. 「有効にする」をクリックします。
10. 次に認証情報(サービスアカウント)を作成します。「認証情報」をクリックします。
11. 「+認証情報を作成」をクリックし、「サービス アカウント」をクリックします。
12. 「サービスアカウント名」「サービスアカウントID」に任意の値を入力し、「完了」をクリックします。
13. 作成したサービスアカウントが一覧に表示されますので、クリックします。
14. 「メール」と「一意のID」の欄に表示されている値をメモしておきます。
15. 「キー」をクリックします。
16. 「鍵を追加」 – 「新しい鍵を作成」をクリックします。
17. 「JSON」を選択し、「作成」をクリックします。
18. 自動で JSON形式の秘密鍵がダウンロードされますので、PC 上に保存し、「閉じる」をクリックします。
サービスアカウントへの API アクセス設定
作成したサービスアカウントにアクセス設定を行います。
1. 以下のURLにアクセスし、Google Apps 管理コンソール に管理者でログインします。
https://admin.google.com/
2. 「セキュリティ」 – 「アクセスとデータ管理」 – 「APIの制御」をクリックします。
3. 下部にスクロールし、「ドメイン全体の委任を管理」をクリックします。
4. 「新しく追加」をクリックします。
5. 「クライアントID」に、『プロジェクト作成・API有効化・サービスアカウント作成』の 14. の手順でメモした「一意のID」を入力します。「OAuthスコープ」には、実行したいAPIに必要な権限のスコープを入力します(必要なスコープについては、こちらの公式サイト参照)。
今回はグループの作成を行うので「https://www.googleapis.com/auth/admin.directory.group」を入力し、「承認」をクリックします。
6. 追加した情報が一覧に表示されれば完了です。
Google グループの作成
Pythonにて Google グループの作成を行います。
Python 用 Google クライアント ライブラリのインストール
実行環境に、Python 用 Google クライアント ライブラリをインストールします。
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
実装(make-group.py)
以下のように実装し「make-group.py」というファイル名で保存します。
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/admin.directory.group']
def main():
tmp_credentials = service_account.Credentials.from_service_account_file(
'',
scopes=SCOPES)
credentials = tmp_credentials.with_subject('')
service = build('admin', 'directory_v1', credentials=credentials)
# グループ作成
service.groups().insert(body = {'email': '', 'description': ''}).execute()
if __name__ == '__main__':
main()
実行
作成した「make-group.py」を実行すると Google グループが作成されます。
python ./make-group.py
Google管理コンソールより、作成されたグループを検索すると表示され、作成されたことを確認することができます。