Example #1
0
def google_refresh_token(request):
    '''
        A one time view to get a refresh token from google
    '''
    FLOW = Drive.create_flow()
    FLOW.params['state'] = xsrfutil.generate_token(settings.SECRET_KEY, request.user)
    authorize_url = FLOW.step1_get_authorize_url()
    return HttpResponseRedirect(authorize_url)
Example #2
0
def google_auth_callback(request):
    '''
        Auth Callback to save the given google_api_credentials json into a file for later use
    '''
    FLOW = Drive.create_flow()
    if not xsrfutil.validate_token(settings.SECRET_KEY, request.REQUEST['state'], request.user):
        return  HttpResponseBadRequest()
    credential = FLOW.step2_exchange(request.REQUEST)
    # Store to file
    docs_client_json = str(credential.to_json())
    file_path = settings.GOOGLE_API_CREDENTIALS_FILE_PATH
    with open(file_path, 'w') as f:
        f.write(docs_client_json)

    return HttpResponse("Restart your server for google drive to work.")