我们从Python开源项目中,提取了以下49个代码示例,用于说明如何使用oauth2client.client.flow_from_clientsecrets()。
def _get_credentials(self, config): """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. """ store = oauth2client.contrib.dictionary_storage.DictionaryStorage(config, 'oauth2') credentials = store.get() if not credentials or credentials.invalid: print("Ask credentials for " + config['user_id']) flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) flow.user_agent = APPLICATION_NAME parser = argparse.ArgumentParser(add_help=False) parser.add_argument('--logging_level', default='ERROR') parser.add_argument('--noauth_local_webserver', action='store_true', default=True, help='Do not run a local web server.') args = parser.parse_args([]) credentials = tools.run_flow(flow, store, args) config.save() return credentials
def first_auth(self, client_secrets): """Authenticate with Google API.""" flow = client.flow_from_clientsecrets( client_secrets, scope=[ 'https://www.googleapis.com/auth/admin.directory.group.readonly', # noqa 'https://www.googleapis.com/auth/admin.directory.group.member.readonly', # noqa 'https://www.googleapis.com/auth/apps.groups.settings' ], redirect_uri='urn:ietf:wg:oauth:2.0:oob') logger.debug('Generating authorization URL.') auth_uri = flow.step1_get_authorize_url() webbrowser.open(auth_uri) auth_code = input('Enter the auth code: ') logger.debug('Generating credentials.') self.credentials = flow.step2_exchange(auth_code)
def get_credentials(self): """ Returns 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. """ self.home_dir = os.path.expanduser('~') self.credential_dir = os.path.join(self.home_dir, '.credentials') if not os.path.exists(self.credential_dir): logging.debug("Cred directory not found...creating: %s", self.credential_dir) os.makedirs(self.credential_dir) self.credential_path = os.path.join(self.credential_dir, 'admin-reports_v1-python-quickstart.json') self.store = Storage(self.credential_path) self.credentials = self.store.get() if not self.credentials or self.credentials.invalid: if not os.path.isfile(self.client_file): logging.error("'client_secret.json file is missing. \ Google OAuth must be configured") sys.exit(1) self.flow = client.flow_from_clientsecrets(self.client_file, self.scope) self.flow.user_agent = self.appname
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_path = CREDS_FILENAME 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 credentials = tools.run_flow(flow, store) return credentials
def auth_stored_credentials(self, client_secrets_file, scopes=[]): """Authorize stored credentials.""" try: import argparse parser = argparse.ArgumentParser(parents=[tools.argparser]) parser.add_argument('args', nargs=argparse.REMAINDER) flags = parser.parse_args() flags.noauth_local_webserver = True except ImportError: flags = None store = Storage(self.credentials_file) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets( client_secrets_file, scopes, ) flow.user_agent = self.app_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 'Saved credentials to ' + self.credentials_file return credentials
def authorize_application(client_secret_file, scope, credential_cache_file='credentials_cache.json', flow_params=[]): """ authorize an application to the requested scope by asking the user in a browser. :param client_secret_file: json file containing the client secret for an offline application :param scope: scope(s) to authorize the application for :param credential_cache_file: if provided or not None, the credenials will be cached in a file. The user does not need to be reauthenticated :param flow_params: oauth2 flow parameters :return OAuth2Credentials object """ FLOW = flow_from_clientsecrets(client_secret_file, scope=scope) storage = Storage(credential_cache_file) credentials = storage.get() if credentials is None or credentials.invalid: # Run oauth2 flow with default arguments. level = logging.getLogger().level credentials = tools.run_flow(FLOW, storage, tools.argparser.parse_args(flow_params)) logging.getLogger().setLevel(level) return credentials
def get_flow(self): """ get the class-level-bound flow handler """ if self.flow is None: self.flow = client.flow_from_clientsecrets( # we keep the creds in a separate file that we don't check in. 'client_secrets.json', # we want to be able to get a user's name and email scope=' '.join([ 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile' ]), # this url-to-codepath binding is set up in ./users/urls.py redirect_uri=os.getenv('REDIRECT_URIS', '').split(',')[0], ) return self.flow
def new_credentials(): """Perform OAuth2 flow to obtain the new credentials. Return: Credentials, the obtained credential. """ credential_path = os.path.join(args.creds_dir, 'ct_gdrive_creds.json') store = oauth2client.file.Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(args.client_secret, SCOPES) flow.user_agent = APPLICATION_NAME credentials = tools.run_flow(flow, store, args) print('Storing credentials to ' + credential_path) return credentials
def get_drive_service(): ''' Returns an object used to interact with the Google Drive API. ''' flow = client.flow_from_clientsecrets( get_credentials_path('secret.json'), 'https://www.googleapis.com/auth/drive') flow.user_agent = USER_AGENT_NAME store = Storage(get_credentials_path('storage.dat', False)) credentials = store.get() if not credentials or credentials.invalid: flags = tools.argparser.parse_args(args=[]) credentials = tools.run_flow(flow, store, flags) http = credentials.authorize(httplib2.Http()) service = discovery.build('drive', 'v3', http=http) return service
def get_credentials(): """ credentials????????? """ dirname = os.path.dirname(__file__) credential_path = os.path.join(dirname, CREDENTIAL_FILE) client_secret_file = os.path.join(dirname, CLIENT_SECRET_FILE) 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 credentials = tools.run_flow(flow, store) print('credentials?{}???????'.format(credential_path)) return credentials
def get_credentials(handler=None): 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, 'google-api-quickstart.json') store = Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(filename=CLIENT_SECRET_FILE,scope=SCOPES,redirect_uri=redirect_url) url = flow.step1_get_authorize_url() if handler: handler.redirect(url) else: return None return credentials
def get_flow(secret, scope, redirect): """ Retrieve an authentication flow object based on the given configuration in the secret file name, the authentication scope, and a redirect URN """ key = (secret, scope, redirect) flow = FLOWS.get(key, None) if flow is None: msg = MISSING_CLIENT_MSG % secret if not os.path.exists(secret): raise AuthenticationConfigError(msg) flow = oauth.flow_from_clientsecrets(secret, scope, redirect_uri=redirect, message=msg) FLOWS[key] = flow return flow
def initYoutube(): flow = flow_from_clientsecrets(constants.YOUTUBE_CLIENT_SECRETS_FILE,\ message=constants.MISSING_CLIENT_SECRETS_MESSAGE,\ scope=constants.YOUTUBE_READ_WRITE_SCOPE, redirect_uri='http://localhost:8080/') storage = Storage("%s-oauth2.json" % sys.argv[0]) credentials = storage.get() if credentials is None or credentials.invalid: flags = argparser.parse_args() credentials = run_flow(flow, storage, flags) else: print("Found valid oauth2 json") youtube = build(constants.YOUTUBE_API_SERVICE_NAME, constants.YOUTUBE_API_VERSION, http=credentials.authorize(httplib2.Http())) print("Done authentication with Youtube") return youtube
def get_credentials(self): conf_dir = self.get_conf_dir() credential_path = os.path.join(conf_dir, self.event + '_credentials.json') store = oauth2client.file.Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: log.warn("No current valid Google credentials. Starting authentication flow...") flow = client.flow_from_clientsecrets(os.path.join(conf_dir, 'client_secret.json'), 'https://www.googleapis.com/auth/calendar') flow.user_agent = "HOTBot" if self.flags: credentials = tools.run_flow(flow, store, self.flags) else: # Needed only for compatibility with Python 2.6 credentials = tools.run(flow, store) log.info('Storing credentials to ' + credential_path) return credentials
def update_credentials(self): """Gets valid user credentials from Gmail using Oauth 2.0 Returns: Credentials, the obtained credential. """ if not os.path.exists(self._config['credentials_dir']): os.makedirs(self._config['credentials_dir']) store = Storage(self._credentials_file) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(self._client_secret_file, self._config['oauth2_scopes']) flow.user_agent = self._config['application_name'] credentials = tools.run_flow(flow, store, self._oauth2_flags) self._logger.info('Storing credentials to ' + self._credentials_file) else: self._logger.info("Credentials exist.") return credentials
def _get_credentials(self): """Get OAuth credentials :return: OAuth credentials :rtype: :class:`oauth2client.client.Credentials` """ credential_dir = join(self.config['creds_cache_dir'], 'cached_oauth_credentials') if not exists(credential_dir): makedirs(credential_dir) credential_path = join(credential_dir, 'googleapis.json') store = Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(self.config['creds'], self.config['scope']) flow.user_agent = 'Iris Gmail Integration' credentials = tools.run_flow( flow, store, tools.argparser.parse_args(args=['--noauth_local_webserver'])) logger.info('Storing credentials to %s' % credential_path) else: credentials.refresh(self.http) return credentials
def get_credentials(self, client_secret_file, scopes, credentials_dir, credentials_file, flags=None): # Create credentials folder, if necessary if not os.path.exists(credentials_dir): os.makedirs(credentials_dir) # Store for credentials file credential_path = os.path.join(credentials_dir, credentials_file) 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 self._flags: credentials = tools.run_flow(flow, store, self._flags) else: # Needed only for compatibility with Python 2.6 credentials = tools.run(flow, store) self._logger.debug("Storing credentials to '{}'".format(credential_path)) else: self._logger.debug("Got valid credential from '{}'".format(credential_path)) return credentials # Create a Google Calendar API service object
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. """ credential_path = os.path.join(SAVED_CREDENTIALS) print(credential_path) store = oauth2client.file.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 callback(): flow = client.flow_from_clientsecrets( 'client_secret_911503641744-hn8pinmojgfi1n4poh2n8ssk48bu8idn.apps.googleusercontent.com.json', scope='https://www.googleapis.com/auth/fusiontables', redirect_uri='http://localhost:5000/callback') flow.params['access_type'] = 'offline' if 'code' not in request.args: auth_uri = flow.step1_get_authorize_url() return redirect(auth_uri) else: auth_code = request.args.get('code') credentials = flow.step2_exchange(auth_code) session['credentials'] = credentials.to_json() return redirect(url_for('index'))
def main(): flow = client.flow_from_clientsecrets(CLIENT_SECRETS_PATH, SCOPES) print('Starting credentials flow...') credentials = tools.run_flow(flow, NullStorage()) # Save the credentials in the same format as the Cloud SDK's authorized # user file. data = { 'type': 'authorized_user', 'client_id': flow.client_id, 'client_secret': flow.client_secret, 'refresh_token': credentials.refresh_token } with open(AUTHORIZED_USER_PATH, 'w') as fh: json.dump(data, fh, indent=4) print('Created {}.'.format(AUTHORIZED_USER_PATH))
def _get_credentials(self): """Get OAuth credentials :return: OAuth credentials :rtype: :class:`oauth2client.client.Credentials` """ credential_dir = join(self.var_dir, 'cached_oauth_credentials') if not exists(credential_dir): makedirs(credential_dir) credential_path = join(credential_dir, 'googleapis.json') store = Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(self.config['creds'], self.config['scope']) flow.user_agent = 'Iris Gmail Integration' credentials = tools.run_flow( flow, store, tools.argparser.parse_args(args=['--noauth_local_webserver'])) logger.info('Storing credentials to %s', credential_path) else: credentials.refresh(self.http) return credentials
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. """ import argparse flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() flags.noauth_local_webserver = True store = Storage(gmail_api.CREDENTIAL_FILE) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(gmail_api.CLIENT_SECRET_FILE, gmail_api.SCOPES) flow.user_agent = gmail_api.APPLICATION_NAME if flags: credentials = tools.run_flow(flow, store, flags) print 'Storing credentials to ' + gmail_api.CREDENTIAL_FILE return credentials
def get_credentials(): home_dir = path.expanduser('~') credential_dir = path.join(home_dir, '.credentials') if not path.exists(credential_dir): makedirs(credential_dir) credential_path = path.join(credential_dir, 'sheets.googleapis.com-python-quickstart.json') store = file.Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(client_secret_path, 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 get_credentials(self, cred_file='client_secret.json'): import os from oauth2client.file import Storage from oauth2client import client 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, 'python-quickstart.json') store = Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(cred_file, scope=['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive']) flow.user_agent = self.app_name try: credentials = tools.run_flow(flow, store, self.flags) except: # Needed only for compatibility with Python 2.6 try: credentials = tools.run_flow(flow, store) except: credentials = tools.run(flow, store) print('Storing credentials to ' + credential_path) return credentials
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. """ credential_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.credentials') if not os.path.exists(credential_dir): os.makedirs(credential_dir) credential_path = os.path.join(credential_dir,'drive-to-photos.json') store = oauth2client.file.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 get_credentials(): # taken from https://developers.google.com/google-apps/calendar/quickstart/python global credentials home_dir = os.path.expanduser('~') credential_dir = os.path.join(home_dir, '.credentials') if not os.path.exists(credential_dir): print('Creating', credential_dir) os.makedirs(credential_dir) credential_path = os.path.join(credential_dir, 'pi_remind.json') store = oauth2client.file.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 get_authenticated_service(): ''' Authorize the request and store authorization credentials. ''' flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_READ_WRITE_SSL_SCOPE, message=MISSING_CLIENT_SECRETS_MESSAGE) storage = Storage("%s-oauth2.json" % sys.argv[0]) credentials = storage.get() if credentials is None or credentials.invalid: credentials = run_flow(flow, storage) # Trusted testers can download this discovery document from the # developers page and it should be in the same directory with the code. return build(API_SERVICE_NAME, API_VERSION, http=credentials.authorize(httplib2.Http()))
def get_authenticated_service(): '''Authorize the request and store authorization credentials to YouTube''' flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_READ_WRITE_SSL_SCOPE, message=MISSING_CLIENT_SECRETS_MESSAGE) storage = Storage("%s-oauth2.json" % sys.argv[0]) credentials = storage.get() if credentials is None or credentials.invalid: credentials = run_flow(flow, storage) # Trusted testers can download this discovery document from the # developers page and it should be in the same directory with the code. return build(API_SERVICE_NAME, API_VERSION, http=credentials.authorize(httplib2.Http()))
def initClientSecret(self, path='client_secrets.json'): """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. """ if not j.sal.fs.exists(path, followlinks=True): raise j.exceptions.Input(message="Could not find google secrets file in %s, please dwonload" % path, level=1, source="", tags="", msgpub="") store = Storage(self.secretsFilePath) self._credentials = store.get() if not j.sal.fs.exists(self.secretsFilePath) or not self._credentials or self._credentials.invalid: flow = client.flow_from_clientsecrets(path, SCOPES) flow.user_agent = APPLICATION_NAME self._credentials = tools.run_flow(flow, store) # credentials = tools.run(flow, store) self.logger.info('Storing credentials to ' + self.secretsFilePath)
def oauth2callback(): """Authenticates google user and authorizes app""" logging.basicConfig(filename='debug.log', level=logging.WARNING) flow = flow_from_clientsecrets( 'client_secret.json', scope='https://www.googleapis.com/auth/calendar.readonly \ https://www.googleapis.com/auth/plus.login', redirect_uri=url_for('oauth2callback', _external=True)) flow.params['access_type'] = 'online' flow.params['approval_prompt'] = 'auto' if 'code' not in request.args: auth_uri = flow.step1_get_authorize_url() return redirect(auth_uri) else: auth_code = request.args.get('code') credentials = flow.step2_exchange(auth_code) # creates credentials object session['credentials'] = credentials.to_json() return redirect(url_for('oauth2'))
def add_login_begin(self): flow = self._flow = client.flow_from_clientsecrets('googledrive.json', 'https://www.googleapis.com/auth/drive.file') flow.user_agent = const.APP_USERAGENT flow.redirect_uri = client.OOB_CALLBACK_URN authorize_url = flow.step1_get_authorize_url() return {'Login URL': authorize_url}
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, 'sendEmail.json') store = oauth2client.file.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 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, 'admin-reports_v1-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 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 = oauth2client.file.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 get_authenticated_service(args): flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_READ_WRITE_SSL_SCOPE, message=MISSING_CLIENT_SECRETS_MESSAGE) storage = Storage("youtube-api-snippets-oauth2.json") credentials = storage.get() if credentials is None or credentials.invalid: credentials = run_flow(flow, storage, args) # Trusted testers can download this discovery document from the developers page # and it should be in the same directory with the code. return build(API_SERVICE_NAME, API_VERSION, http=credentials.authorize(httplib2.Http()))
def create_credentials(client_secret_path): """Gets valid user credentials from storage. Args: path (str), path to client_secret.json file """ flow = client.flow_from_clientsecrets(client_secret_path, ' '.join(SCOPES)) flow.user_agent = 'Clouseau' flow.params['access_type'] = 'offline' flow.params['approval_prompt'] = 'force' store = oauth2client.file.Storage(CREDENTIALS_PATH) flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args(['--noauth_local_webserver']) tools.run_flow(flow, store, flags)
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, 'quick-add.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 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 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,'academiadasapostas.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 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, 'sheets.googleapis.com-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 test_flow_get_put(self): instance = TestNDBModel( flow=client.flow_from_clientsecrets( datafile('client_secrets.json'), 'foo', redirect_uri='oob'), id='foo' ) instance.put() retrieved = TestNDBModel.get_by_id('foo') self.assertEqual('foo_client_id', retrieved.flow.client_id)
def test_validate_success(self, mock_logger): flow_prop = TestNDBModel.flow flow_val = client.flow_from_clientsecrets( datafile('client_secrets.json'), 'foo', redirect_uri='oob') flow_prop._validate(flow_val) mock_logger.info.assert_called_once_with('validate: Got type %s', type(flow_val))
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.flow = client.flow_from_clientsecrets( datafile('client_secrets.json'), 'foo', redirect_uri='oob')
def test_flow_from_clientsecrets_cached(self): cache_mock = http_mock.CacheMock() load_and_cache('client_secrets.json', 'some_secrets', cache_mock) flow = client.flow_from_clientsecrets( 'some_secrets', '', redirect_uri='oob', cache=cache_mock) self.assertEqual('foo_client_secret', flow.client_secret)
def _flow_from_clientsecrets_success_helper(self, loadfile_mock, device_uri=None, revoke_uri=None): client_type = clientsecrets.TYPE_WEB client_info = { 'auth_uri': 'auth_uri', 'token_uri': 'token_uri', 'client_id': 'client_id', 'client_secret': 'client_secret', } if revoke_uri is not None: client_info['revoke_uri'] = revoke_uri loadfile_mock.return_value = client_type, client_info filename = object() scope = ['baz'] cache = object() if device_uri is not None: result = client.flow_from_clientsecrets( filename, scope, cache=cache, device_uri=device_uri) self.assertEqual(result.device_uri, device_uri) else: result = client.flow_from_clientsecrets( filename, scope, cache=cache) self.assertIsInstance(result, client.OAuth2WebServerFlow) loadfile_mock.assert_called_once_with(filename, cache=cache)
def test_flow_from_clientsecrets_invalid_w_msg(self, sys_exit, loadfile_mock): filename = object() cache = object() message = 'hi mom' client.flow_from_clientsecrets( filename, None, cache=cache, message=message) sys_exit.assert_called_once_with(message) loadfile_mock.assert_called_once_with(filename, cache=cache)
def test_flow_from_clientsecrets_invalid_w_msg_and_text(self, sys_exit, loadfile_mock): filename = object() cache = object() message = 'hi mom' expected = ('The client secrets were invalid: ' '\n{0}\n{1}'.format('foobar', 'hi mom')) client.flow_from_clientsecrets( filename, None, cache=cache, message=message) sys_exit.assert_called_once_with(expected) loadfile_mock.assert_called_once_with(filename, cache=cache)
def test_flow_from_clientsecrets_unknown_flow(self, loadfile_mock): client_type = 'UNKNOWN' loadfile_mock.return_value = client_type, None filename = object() cache = object() err_msg = ('This OAuth 2.0 flow is unsupported: ' '{0!r}'.format(client_type)) with self.assertRaisesRegexp(client.UnknownClientSecretsFlowError, err_msg): client.flow_from_clientsecrets(filename, None, cache=cache) loadfile_mock.assert_called_once_with(filename, cache=cache)
def create_and_store_flow(request): flow = flow_from_clientsecrets( settings.GOOGLE_OAUTH2_CLIENT_SECRETS_JSON, scope='https://www.googleapis.com/auth/drive.readonly', redirect_uri=request.build_absolute_uri('/oauth') ) flow.params['approval_prompt'] = 'force' request.session['flow'] = jsonpickle.encode(flow) return flow