Data Transfer API を使ってみる
新APIが公式ブログの方で発表されました。
※正確にはリリースするよという案内は以前からありました。
Driveのオーナー権限をAさんからBさんのように移すことが可能になるはず。
デベロッパー向けサイト
APIのリソースとしてはApplicationsとTransferの2つがあるようです。
Applicationsの一覧を叩いてみる
以下のページにいき
https://developers.google.com/admin-sdk/data-transfer/v1/reference/applications/listAuthorize requests using OAuth 2.0を選択
認可
Executeを押下
{ "kind": "admin#datatransfer#applicationsList", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/XpKICUI-8fXZ7w4mrwk4FEFntGI\"", "applications": [ { "kind": "admin#datatransfer#ApplicationResource", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/viymXrh-kKAA0Kkh0wErB_1pqgU\"", "id": "55656082996", "name": "Drive", "transferParams": [ { "key": "PRIVACY_LEVEL", "value": [ "SHARED", "PRIVATE" ] } ] }, { "kind": "admin#datatransfer#ApplicationResource", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/jcCDiEJKoSnDd949jPKfZjvouzE\"", "id": "553547912911", "name": "Google+" } ] }
なるほどDriveはApplicationsのひとつなんですね。
そのうちカレンダーとかEmailとかが来るのかもしれないですね。
Trnsfersの一覧を叩いてみる
- 以下のページにいきあとは上記同様でOK
https://developers.google.com/admin-sdk/data-transfer/v1/reference/transfers/list
{ "kind": "admin#datatransfer#dataTransfersList", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/vyGp6PvFo4RvsFtPoIWeCReyIC8\"" }
なんも返ってこないですね。
insertがあるのでおそらくそっちで登録するのでしょう。
Trnsfersの登録を叩いてみる
- 以下のページにいき認可までは上記同様
https://developers.google.com/admin-sdk/data-transfer/v1/reference/transfers/insert
2.こんなかんじで入力 〜userIdはメールアドレスではなくUser一覧を出した時のApps上のキーなので注意
{ "newOwnerUserId": "101136005779153122515", "oldOwnerUserId": "111053615694756499061", "applicationDataTransfers": [ { "applicationId": "55656082996" } ] }
- Executeを押下
{ "kind": "admin#datatransfer#DataTransfer", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/4jPuIfJVFUa5dkCco8_8RnWW0xA\"", "id": "AKrEtIaGsa4Yg8k55HVnP9COnMhzGjHHyFAzLHGQp_NdPW5yWEd0fn12vJbBL27rsA_i3tFpO1eY", "oldOwnerUserId": "111053615694756499061", "newOwnerUserId": "101136005779153122515", "applicationDataTransfers": [ { "applicationId": "55656082996", "applicationTransferStatus": "pending" } ], "overallTransferStatusCode": "inProgress", "requestTime": "2015-09-17T23:50:56.992Z" }
inProgressとかなっているから処理中ってことでしょう。
もういちどTransferの一覧を叩いてみる
{ "kind": "admin#datatransfer#dataTransfersList", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/nvSMDcM3DMwDAdQlY3g3diFPxzc\"", "dataTransfers": [ { "kind": "admin#datatransfer#DataTransfer", "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/vSbQc2VlFa9NsbV8vw3VVAMnOy0\"", "id": "AKrEtIaGsa4Yg8k55HVnP9COnMhzGjHHyFAzLHGQp_NdPW5yWEd0fn12vJbBL27rsA_i3tFpO1eY", "oldOwnerUserId": "111053615694756499061", "newOwnerUserId": "101136005779153122515", "applicationDataTransfers": [ { "applicationId": "55656082996", "applicationTransferStatus": "completed" } ], "overallTransferStatusCode": "completed", "requestTime": "2015-09-17T23:50:56.992Z" } ] }
なんか返ってきてますね
実行結果とかがわかるようです!
なおドキュメント移譲はオーナー権限を移し、自身は編集権限で登録される模様
総括
これはなかなか便利なAPIなのではないでしょうか
今までも管理コンソールから1人ずつファイルの移譲は可能でしたが、ユーザーが大量にいると辛いところがありましたからね。システムで自動化できるのは助かるかと思います。