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)
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.")