howdylikes

Google Developersってわかりづらいよね

Data Transfer API を使ってみる

f:id:howdy39:20150918121915p:plain

新APIが公式ブログの方で発表されました。
※正確にはリリースするよという案内は以前からありました。

Driveのオーナー権限をAさんからBさんのように移すことが可能になるはず。

デベロッパー向けサイト

developers.google.com

APIのリソースとしてはApplicationsTransferの2つがあるようです。

Applicationsの一覧を叩いてみる

  1. 以下のページにいき
    https://developers.google.com/admin-sdk/data-transfer/v1/reference/applications/list

  2. Authorize requests using OAuth 2.0を選択

  3. 認可 f:id:howdy39:20150918083725p:plain

  4. 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の一覧を叩いてみる

  1. 以下のページにいきあとは上記同様でOK
    https://developers.google.com/admin-sdk/data-transfer/v1/reference/transfers/list
{
 "kind": "admin#datatransfer#dataTransfersList",
 "etag": "\"yhk6Gsh_WtQyfdydUtxqu8LuRuY/vyGp6PvFo4RvsFtPoIWeCReyIC8\""
}

なんも返ってこないですね。
insertがあるのでおそらくそっちで登録するのでしょう。

Trnsfersの登録を叩いてみる

  1. 以下のページにいき認可までは上記同様
    https://developers.google.com/admin-sdk/data-transfer/v1/reference/transfers/insert

2.こんなかんじで入力 〜userIdはメールアドレスではなくUser一覧を出した時のApps上のキーなので注意

{
 "newOwnerUserId": "101136005779153122515",
 "oldOwnerUserId": "111053615694756499061",
 "applicationDataTransfers": [
  {
   "applicationId": "55656082996"
  }
 ]
}
  1. 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人ずつファイルの移譲は可能でしたが、ユーザーが大量にいると辛いところがありましたからね。システムで自動化できるのは助かるかと思います。