Beispiel #1
0
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
Beispiel #2
0
 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
Beispiel #3
0
def credentials_from_json(credentials):
    return AccessTokenCredentials.from_json(json.dumps(credentials))