def gdisconnect(): # only disconnect a connected user credentials = AccessTokenCredentials.from_json( login_session['credentials']) if credentials is None: response = make_response( json.dumps('Current user not connected.'), 401) response.headers['Content-Type'] = 'application/json' return response # Execute GET request to revoke current token. access_token = credentials.access_token url = 'https://accounts.google.com/o/oauth2/revoke?token=' url = url + access_token h = httplib2.Http() result = h.request(url, 'GET')[0] if result['status'] == '200': # reset the user's session del login_session['credentials'] del login_session['gplus_id'] del login_session['username'] del login_session['email'] del login_session['picture'] flash('Successfully disconnected.') return redirect('/') else: # If we receive anything other than a 200 response from google, aassume # invalid token response = make_response( json.dumps('Failed to revoke token for given user.'), 400) response.headers['Content-Type'] = 'application/json' return response
def build_drive_service(self, credentials=None, credential_name="credentials.json"): token = self.createToken() if not credentials: try: cred_file = open(credential_name) credentials = OAuth2Credentials.from_json( cred_file.read() ) except: credentials = AccessTokenCredentials.from_json(token) # Create an httplib2.Http object and authorize it with our credentials http = httplib2.Http() http = credentials.authorize(http) drive_service = build('drive', 'v2', http=http) return drive_service
def credentials_from_json(credentials): return AccessTokenCredentials.from_json(json.dumps(credentials))