Dropbox APIでグループ一覧とグループのメンバーを表示する
この記事について
Dropboxでグループの管理をしていた時に調べたものです。 * Dropbox の管理者向け * Dropbox APIを利用して、対象テナントのグループ情報を取得したい * 特定のグループに属しているメンバーの情報を取得したい
Dropbox APIキーを発行する
事前に、Dropbox API キーの発行が必要。
権限はチームメンバーの表示が必要です。
参考
Dropbox API: アプリの権限とアクセス トークンの移行
[ご対応のお願い] 2021 年 9 月 30 日に Dropbox API 仕様の一部が変更されます
対象コンテナ(テナント)の全てのグループ一覧を表示する
グループ一覧とその情報を表示する(jqコマンドで整形)
表示件数は1000件にしています。
curl -X POST https://api.dropboxapi.com/2/team/groups/list --header "Authorization: Bearer トークン" --header "Content-Type: application/json" --data "{\"limit\": 1000}" | jq .
以下のような形で出力されます。
{ "groups": [ 中略 { "group_name": "グループ名", "group_id": "グループID", "group_external_id": "", "member_count": メンバー数, "group_management_type": { ".tag": "company_managed" ※企業管理グループの場合 } ], …
上記のコマンドで、
グループ名とグループIDのみ取り出して、CSV形式へ変換、「"」を取り除く
curl -X POST https://api.dropboxapi.com/2/team/groups/list --header "Authorization: Bearer トークン" --header "Content-Type: application/json" --data "{\"limit\": 1000}" | jq -r '.groups[] | [.group_name, .group_id] | @csv' | sed 's/"//g'
下記のような形で出力される。
グループ名,グループID
グループIDを指定してメンバー一覧を表示
対象のグループに属しているメンバーの情報全てを表示する場合
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list --header "Authorization: Bearer トークン" --header "Content-Type: application/json" --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"グループID\"},\"limit\": 1000}" | jq .
対象グループのメンバーの名前とメールアドレスのみ表示する。
グループIDは対象グループのものに変更する。
名前とメールアドレス以外の物を表示したい場合は、members配列から表示する要素名を追加、変更する。
curl -X POST https://api.dropboxapi.com/2/team/groups/members/list --header "Authorization: Bearer トークン" --header "Content-Type: application/json" --data "{\"group\": {\".tag\": \"group_id\",\"group_id\": \"グループID\"},\"limit\": 1000}" | jq -r '.members[] | [.profile.name.display_name,.profile.email] | @csv’
下記のように出力される
氏名,メールアドレス
参考
Dropbox API Console
https://www.dropbox.com/developers/apps
Dropbox API reference
https://www.dropbox.com/developers/documentation/http/documentation
jq Tutorial
https://stedolan.github.io/jq/tutorial/