DBX Platform デベロッパー ガイドを読んだ個人メモ
DBX Platform developer guide
- アプリを作成したときにスコープは2種類
- アプリフォルダー
- アプリ専用のフォルダー内であればフル権
- アプリ専用のフォルダーはアプリ作成時には生成されない
※アカウントとリンクに作成される
- フルDropbox
- ユーザーのフォルダ含めてフル権
- アプリフォルダー
Authentication types
ユーザー認証
- ユーザーのアプリのアクセストークンを利用(ユーザーアクセストークン)
- ユーザーのアカウントを操作
チーム認証
- チームのアプリのアクセストークンを利用(チームアクセストークン)
- アプリの権限で許可されている範囲でチームを操作
- チームアクセストークンにユーザーアクセストークンを追加することで
ユーザー認証が必要なAPIの利用が可能
Dropbox-API-Select-User
- チームメンバーのユーザーアクセストークンを利用する際のヘッダー
- アプリで許可されている範囲でそのメンバーに代わって操作を行う
Dropbox-API-Select-Admin
- チーム管理者のユーザーアクセストークンを利用する際のヘッダー
- アプリで許可されている範囲でその管理者に代わって操作を行う
- 管理者権限はチーム内のメンバー固有のフォルダ内の読み取りは可能
アプリ認証
- アプリキーとシークレットを利用
- ユーザーやチームを識別しない
認証なし
- 一部のAPIは他パラメータを利用
Namespaces
チームフォルダモデル
- ルートフォルダは各メンバーごとにもつ
- ルート配下に共有フォルダとチームフォルダをもつ
- 共有フォルダ
- フォルダ内をメンバー間で共有
- マウントは各々行う(フォルダ名もそれぞれ決められる)
- チームフォルダ
- フォルダ内をメンバー間で共有
- フォルダ名も共有
- 共有フォルダ
- API呼び出し時のルートフォルダは各メンバーのルートフォルダになる
- 共有フォルダ、チームフォルダもアクセス可
チームスペースモデル
- ルートフォルダは共通
- ルート配下に各メンバーごとに個人フォルダーをもつ
- ルート配下に共有フォルダとチームフォルダ、チームメンバーフォルダをもつ
- チームメンバーフォルダ
- メンバー固有のフォルダ
- 共有フォルダ
- チームフォルダモデルと同様
- チームフォルダ
- チームフォルダモデルと同様
- チームメンバーフォルダ
- API呼び出し時のルートフォルダは各メンバーのチームメンバーフォルダになる
- チームメンバーフォルダと同階層のフォルダへのアクセスはできない
- 共有フォルダ、チームフォルダにアクセスするためにはルートの指定が必要
- Dropbox-API-Path-Rootヘッダーを利用して、root_namespace_idを指定
- 他のチームメンバーフォルダへのアクセスは別途権限が必要
- 共有フォルダ、チームフォルダにアクセスするためにはルートの指定が必要
- チームメンバーフォルダと同階層のフォルダへのアクセスはできない
- 自身のフォルダが紫色であればチームスペースモデル
感想
- ユーザーAPIにはない概念が多いため、追加で理解が必要
- 特にチームスペースとAPI利用時のルートフォルダ
- ユーザーAPIと異なり、ファイルアップロードにはアクセストークン以外に
メンバーIDとルートフォルダIDが必要そう