2

Google ドライブ SDK はパーミッションのバッチ操作をサポートしていますか (https://developers.google.com/drive/v2/reference/permissions/insert)

たとえば、20 人のユーザーにドキュメントへの書き込み権限を付与したいと考えています。20 回の呼び出しではなく、1 回の REST 呼び出しで実行できますか?

4

2 に答える 2

1

このページに出くわしました: https://developers.google.com/drive/migration

最後に、バッチ操作は現在ドライブ API でサポートされていないことがわかります。

于 2012-11-07T12:51:23.807 に答える
-1

プログラムでそれを達成することができますが。私はこの方法でそれを達成するために彼らのjava-scriptサンプルメソッドを変更しました。

/**
     * Retrieve a list of permissions.
     *
     * @param {String} fileId ID of the file to retrieve permissions for.
     * @param {Function} callback Function to call when the request is complete.
     */
    function retrievePermissions(fileId, callback) {
      var request = gapi.client.drive.permissions.list({
        'fileId': fileId
      });
      request.execute(function(resp) {
        //console.log(resp);
        callback(resp.items);
      });
    }


/**
     * Update a permission's role.
     *
     * @param {String} fileId ID of the file to update permission for.
     * @param {String} permissionId ID of the permission to update.
     * @param {String} newRole The value "owner", "writer" or "reader".
     */
    function updatePermission(fileId, items,callback) {
        var updateRequest = gapi.client.drive.permissions.update({
          'fileId': fileId,
          'permissionId': items[0].id,
          'resource': items[0]
        });

        updateRequest.execute(function(resp) {
            items.splice(0,1);
            if (items.length > 0)
                updatePermission(fileId,items,callback);
            if (items.length == 0)
                callback(resp);
        });
    }

これらのメソッドを呼び出すために、次のコードがあります。

retrievePermissions(result.id, function(items){
 var toUpdate = new Array();
 var j = 0;
 for (var i = 0; i < items.length; i++){
  if (items[i].role != "owner" && items[i].id != "anyoneWithLink"){
    items[i].role = "reader";
    items[i].additionalRoles = [ "commenter" ];
    toUpdate[j++] = items[i];
      }
     }

updatePermission(result.id, toUpdate, function(resp){ console.log (resp) } );

});

于 2012-12-10T03:59:02.193 に答える