google python google-drive-sdk google-oauth

google - Error de la API de unidad: python no encuentra el archivo json de inicio rápido



pydrive (1)

Intento usar Google-drive-api y tengo un problema. Seguí con precisión todas las instrucciones del tutorial de inicio rápido para la api de Google Drive y tengo un error con un archivo que no tengo. Tutorial de inicio rápido de Python Aquí está mi código:

from __future__ import print_function import httplib2 import os from apiclient import discovery from oauth2client import client from oauth2client import tools from oauth2client.file import Storage try: import argparse flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() except ImportError: flags = None # If modifying these scopes, delete your previously saved credentials # at ~/.credentials/drive-python-quickstart.json SCOPES = ''https://www.googleapis.com/auth/drive.metadata'' CLIENT_SECRET_FILE = ''client_secret.json'' APPLICATION_NAME = ''Drive API Python Quickstart'' def get_credentials(): """Gets valid user credentials from storage. If nothing has been stored, or if the stored credentials are invalid, the OAuth2 flow is completed to obtain the new credentials. Returns: Credentials, the obtained credential. """ home_dir = os.path.expanduser(''~'') credential_dir = os.path.join(home_dir, ''.credentials'') if not os.path.exists(credential_dir): os.makedirs(credential_dir) credential_path = os.path.join(credential_dir, ''drive-python-quickstart.json'') store = Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) flow.user_agent = APPLICATION_NAME if flags: credentials = tools.run_flow(flow, store, flags) else: # Needed only for compatibility with Python 2.6 credentials = tools.run(flow, store) print(''Storing credentials to '' + credential_path) return credentials def main(): """Shows basic usage of the Google Drive API. Creates a Google Drive API service object and outputs the names and IDs for up to 10 files. """ credentials = get_credentials() http = credentials.authorize(httplib2.Http()) service = discovery.build(''drive'', ''v3'', http=http) results = service.files().list( pageSize=10,fields="nextPageToken, files(id, name)").execute() items = results.get(''files'', []) if not items: print(''No files found.'') else: print(''Files:'') for item in items: print(''{0} ({1})''.format(item[''name''], item[''id''])) if __name__ == ''__main__'': main()

Resultado:

C: / Python27 / lib / site-packages / oauth2client_helpers.py: 255: UserWarning: no se puede acceder a C: / Users / Neyoh.credentials / drive-python-quickstart.json: ningún archivo o directorywarnings.warn (_MISSING_FILE_MESSAGE.format ( nombre del archivo))

Tengo el archivo client_secret.json en el directorio de mi script python, pero en HOME/.credentials/ , no tengo nada. El tutorial habla sobre client_secret.json pero no sobre drive-python-quickstart.json . Nunca se menciona. ¿Qué es drive-python-quickstart.json ? Es el mismo archivo?

Edit1: Cuando uso client_secret.json en /.credentials/ lugar de drive-python-quickstart.json tengo este error:

Archivo "C: / Python27 / lib / site-packages / oauth2client / client.py", línea 302, en new_from_json module_name = data [''_ module''] KeyError: ''_module''


Entré en el mismo problema con google calendar api. Para resolver el problema simplemente use la ruta absoluta del archivo a su CLIENT_SECRET_FILE como:

CLIENT_SECRET_FILE = r''C:/Users/xxx/client_secret.json''

El archivo drive-python-quickstart.json se creará después de la autenticación de forma automática.