Index: remoting/client/appengine/api.py |
diff --git a/remoting/client/appengine/api.py b/remoting/client/appengine/api.py |
index ec16fc63cd7f468e4506f78d0de956242ddb983d..e1e2ddb758e8908df177961814a9575794632065 100644 |
--- a/remoting/client/appengine/api.py |
+++ b/remoting/client/appengine/api.py |
@@ -10,8 +10,7 @@ import logging |
from django.utils import simplejson as json |
-import gdata.client |
- |
+from google.appengine.api import urlfetch |
from google.appengine.ext import webapp |
from google.appengine.ext.webapp import util |
from google.appengine.ext.webapp.util import login_required |
@@ -30,26 +29,26 @@ class GetXmppTokenHandler(webapp.RequestHandler): |
self.response.out.write('User has not authenticated') |
self.set_status(400) |
+ |
class GetHostListHandler(webapp.RequestHandler): |
"""Proxies the host-list handlers on the Chromoting directory.""" |
@login_required |
def get(self): |
- try: |
- client = gdata.client.GDClient() |
- host_list_json = client.Request( |
- method='GET', |
- uri="https://www.googleapis.com/chromoting/v1/@me/hosts", |
- converter=None, |
- desired_class=None, |
- auth_token=auth.GetChromotingToken()) |
+ if not auth.HasOAuth2Tokens(): |
+ self.response.set_status(403) |
self.response.headers['Content-Type'] = 'application/json' |
- self.response.out.write(host_list_json.read()) |
- except auth.NotAuthenticated: |
- self.response.out.write('User has not authenticated') |
- self.response.set_status(400) |
- except (gdata.client.Unauthorized, gdata.client.RequestError), inst: |
- self.response.out.write(inst.reason) |
- self.response.set_status(inst.status) |
+ self.response.out.write( |
+ '{"error": { "code": -1, "message": "No OAuth2 token" }}') |
+ return |
+ result = urlfetch.fetch( |
+ url = 'https://www.googleapis.com/chromoting/v1/@me/hosts', |
+ method = urlfetch.GET, |
+ headers = {'Authorization': 'OAuth ' + auth.GetAccessToken()}) |
+ self.response.set_status(result.status_code) |
+ for i in result.headers: |
+ self.response.headers[i] = result.headers[i] |
+ self.response.out.write(result.content) |
+ |
def main(): |
application = webapp.WSGIApplication( |