Google Drive SDK

Permissions: list

Requires authorization

Lists a file's permissions. Try it now or see an example.

Request

HTTP request

GET https://www.googleapis.com/drive/v2/files/fileId/permissions

Parameters

Parameter name Value Description
Path parameters
fileId string The ID for the file.

Authorization

This request requires authorization with at least one of the following scopes (read more about authentication and authorization).

Scope
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.metadata.readonly

Request body

Do not supply a request body with this method.

Response

If successful, this method returns a response body with the following structure:

{
  "kind": "drive#permissionList",
  "etag": etag,
  "selfLink": string,
  "items": [
    permissions Resource
  ]
}
Property name Value Description Notes
kind string This is always drive#permissionList.
etag etag The ETag of the list.
items[] list The actual list of permissions.

Examples

Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).

Java

Uses the Java client library

import com.google.api.services.drive.Drive;
import com.google.api.services.drive.model.Permission;
import com.google.api.services.drive.model.PermissionList;

import java.io.IOException;
import java.util.List;

// ...

public class MyClass {

  // ...

  /**
   * Retrieve a list of permissions.
   *
   * @param service Drive API service instance.
   * @param fileId ID of the file to retrieve permissions for.
   * @return List of permissions.
   */
  private static List<Permission> retrievePermissions(Drive service,
      String fileId) {
    try {
      PermissionList permissions = service.permissions().list(fileId).execute();
      return permissions.getItems();
    } catch (IOException e) {
      System.out.println("An error occurred: " + e);
    }

    return null;
  }

  // ...

}

.NET

Uses the .NET client library

using Google.Apis.Drive.v2;
using Google.Apis.Drive.v2.Data;

using System.Collections.Generic;
// ...

public class MyClass {

  // ...

  /// <summary>
  /// Retrieve a list of permissions.
  /// </summary>
  /// <param name="service">Drive API service instance.</param>
  /// <param name="fileId">ID of the file to retrieve permissions for.</param>
  /// <returns>List of permissions.</returns>
  public static IList<Permission> RetrievePermissions(DriveService service, String fileId) {
    try {
      PermissionList permissions = service.Permissions.List(fileId).Fetch();
      return permissions.Items;
    } catch (Exception e) {
      Console.WriteLine("An error occurred: " + e.Message);
    }
    return null;
  }

  // ...

}

PHP

Uses the PHP client library

/**
 * Retrieve a list of permissions.
 *
 * @param Google_DriveService $service Drive API service instance.
 * @param String $fileId ID of the file to retrieve permissions for.
 * @return Array List of permissions.
 */
function retrievePermissions($service, $fileId) {
  try {
    $permissions = $service->permissions->listPermissions($fileId);
    return $permissions->getItems();
  } catch (Exception $e) {
    print "An error occurred: " . $e->getMessage();
  }
  return NULL;
}

Python

Uses the Python client library

from apiclient import errors
# ...

def retrieve_permissions(service, file_id):
  """Retrieve a list of permissions.

  Args:
    service: Drive API service instance.
    file_id: ID of the file to retrieve permissions for.
  Returns:
    List of permissions.
  """
  try:
    permissions = service.permissions().list(fileId=file_id).execute()
    return permissions.get('items', [])
  except errors.HttpError, error:
    print 'An error occurred: %s' % error
  return None

Ruby

Uses the Ruby client library

##
# Retrieve a list of permissions.
#
# @param [Google::APIClient] client
#   Authorized client instance
# @param [String] file_id
#   ID of the file to retrieve permissions for
# @return [Array]
#   List of permissions
def retrieve_permissions(client, file_id)

  drive = client.discovered_api('drive', 'v2')
  api_result = client.execute(
    :api_method => drive.permissions.list,
    :parameters => { 'fileId' => file_id })
  if api_result.status == 200
    permissions = api_result.data
    return permissions.items
  else
    puts "An error occurred: #{result.data['error']['message']}"
  end
end

JavaScript

Uses the JavaScript client library

/**
 * 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) {
    callback(resp.items);
  });
}

Go

Uses the Go client library

import (
  "code.google.com/p/google-api-go-client/drive/v2"
  "fmt"
)


// AllPermissions fetches all permissions for a given file
func AllPermissions(d *drive.Service, fileId string) ([]*drive.Permission, error) {
  r, err := d.Permissions.List(fileId).Do()
  if err != nil {
    fmt.Printf("An error occurred: %v\n", err)
    return nil, err
  }
  return r.Items, nil
}

Objective-C

Uses the Objective-C client library

#import "GTLDrive.h"
// ...

+ (void)retrievePermissionsWithService:(GTLServiceDrive *)service
                                fileId:(NSString *)fileId
                       completionBlock:(void (^)(NSArray *, NSError *))completionBlock {
  GTLQueryDrive *query =
    [GTLQueryDrive queryForPermissionsListWithFileId:fileId];
  // queryTicket can be used to track the status of the request.
  GTLServiceTicket *queryTicket =
    [service executeQuery:query
        completionHandler:^(GTLServiceTicket *ticket,
                            GTLDrivePermissionList *permissions, NSError *error) {
          if (error == nil) {
            completionBlock(permissions.items, nil);
          } else {
            NSLog(@"An error occurred: %@", error);
            completionBlock(nil, error);
          }
        }];
}

// ...

Try it!

Use the APIs Explorer below to call this method on live data and see the response.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.