#!/usr/bin/python3 from __future__ import print_function import pickle import os.path from googleapiclient.discovery import build from google_auth_oauthlib.flow import InstalledAppFlow from google.auth.transport.requests import Request from httplib2 import http # If modifying these scopes, delete the file token.pickle. SCOPES = ['https://www.googleapis.com/auth/drive'] def main(): """Shows basic usage of the Drive v3 API. Prints the names and ids of the first 10 files the user has access to. """ creds = None # The file token.pickle stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.pickle'): with open('token.pickle', 'rb') as token: creds = pickle.load(token) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.pickle', 'wb') as token: pickle.dump(creds, token) service = build('drive', 'v3', credentials=creds) # Call the Drive v3 API results = service.files().list( pageSize = 1000, corpora = 'teamDrive', includeItemsFromAllDrives = True, supportsAllDrives = True, includeTeamDriveItems = True, teamDriveId = "0AGWvkl6xs2mUUk9PVA", fields = "nextPageToken, files(id, name)" ).execute() # for i in results: # print(results) # print(results) items = results.get('files', []) listid = [] if not items: print('No files found.') else: print('Files:') for item in items: # print(u'{0} ({1})'.format(item['name'], item['id'])) listid.append(item['id']) print(listid) for id_file in listid: try: service.permissions().create(body={"role":"reader", "type":"anyone"}, fileId=id_file, supportsTeamDrives=True, fields='id').execute() print(id_file) print('done') pass except Exception as e: print('next') continue if __name__ == '__main__': main()