No proxy api for memcache service in OAuth2.0 dance

I am trying to implement OAuth2.0 in my application and I am having a problem that I cannot fix.

Error:

Traceback: File "/home/i159/Envs/photorulez/lib/python2.6/site- packages/django/core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "/home/i159/workspace/photorulez/photorulez/photoapp/views.py" in get_token 63. saved_token = gdata.gauth.AeLoad(request.GET.get('oauth_token')) File "/home/i159/Envs/photorulez/lib/python2.6/site-packages/gdata/gauth.py" in ae_load 1289. token_string = gdata.alt.app_engine.get_token(key_name) File "/home/i159/Envs/photorulez/lib/python2.6/site-packages/gdata/alt/app_engine.py" in get_token 51. token_string = memcache.get(unique_key) File "/home/i159/Envs/photorulez/lib/python2.6/site- packages/google/appengine/api/memcache/__init__.py" in get 487. self._make_sync_call('memcache', 'Get', request, response) File "/home/i159/Envs/photorulez/lib/python2.6/site-packages/google/appengine/api/apiproxy_stub_map.py" in MakeSyncCall 94. return stubmap.MakeSyncCall(service, call, request, response) File "/home/i159/Envs/photorulez/lib/python2.6/site-packages/google/appengine/api/apiproxy_stub_map.py" in MakeSyncCall 301. assert stub, 'No api proxy found for service "%s"' % service Exception Type: AssertionError at /get_access_token/ Exception Value: No api proxy found for service "memcache" 

The code:

 CONSUMER_KEY = 'anonymous' CONSUMER_SECRET = 'anonymous' SCOPES = ['https://picasaweb.google.com/data/',] def oauth2_login(request): client = gdata.docs.client.DocsClient(source='photorulez') oauth_callback_url = 'http://%s/get_access_token' % '127.0.0.1:8000' request_token = client.GetOAuthToken( SCOPES, oauth_callback_url, CONSUMER_KEY, consumer_secret=CONSUMER_SECRET) request.session['request_token'] = request_token return HttpResponseRedirect(request_token.generate_authorization_url()) def get_token(request): client = gdata.docs.client.DocsClient(source='photorulez') saved_token = gdata.gauth.AeLoad(request.GET.get('oauth_token')) uri = 'http://127.0.0.1:8000' request_token = gdata.gauth.AuthorizeRequestToken( saved_token, uri) access_token = client.GetAccessToken(request_token) client.auth_token = gdata.gauth.OAuthHmacToken(CONSUMER_KEY, CONSUMER_SECRET, access_token.token, access_token.token_secret, gdata.gauth.ACCESS_TOKEN) return HttpResponseRedirect('/') 

I just installed the google_appengine-1.5.1 module via pip, my application runs on a Django dev server. What can I do to fix this? Should I only run it on GAE?

+6
source share
1 answer

It looks like you need to start GAE because the OAth implementation uses the memcache GAE service. You tell the GAE API that your Django server will handle GAE calls. You probably need to start the GAE dev server so that it can handle requests.

If you don’t want to start the GAE server, it looks like this blog post shows the code in order to get just enough GAE launch to serve this request.

+5
source

Source: https://habr.com/ru/post/899362/


All Articles