def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on Yahoo! """ user_info = self._get_default_user_info() # 1) Obtain the user's GUID. response = self.make_request( "http://social.yahooapis.com/v1/me/guid", token=access_token, secret=access_secret, additional_params={"format": "json"}, protected=True) data = json.loads(response.content)["guid"] guid = data["value"] # 2) Inspect the user's profile. response = self.make_request( "http://social.yahooapis.com/v1/user/%s/profile/usercard" % guid, token=access_token, secret=access_secret, additional_params={"format": "json"}, protected=True) data = json.loads(response.content)["profile"] user_info["id"] = guid user_info["username"] = data["nickname"].lower() user_info["name"] = data["nickname"] user_info["picture"] = data["image"]["imageUrl"] return user_info
def query(self): body = self.request.body query = json.loads(body)['query'] if query == 'count': count = '%s' % self.api.model.query().count(100) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(count) return self.response.headers['Content-Type'] = 'application/json' def values(): for value in query['values']: if isinstance(value, dict): kind = value['kind'] id = int(value['value']) value = ndb.Key(kind, id) yield value items = self.api.model\ .gql(query['string'], *[i for i in values()])#\ #.fetch(1000) def get_items_json(): for item in items: try: self.api.__is_readable__(self, item) except HTTPError as e: pass else: yield self.api.item_to_JSON(item) json_data = {} json_data[self.api.plural_name] = [i for i in get_items_json()] self.response.out.write(json.dumps(json_data))
def query(self): body = self.request.body query = json.loads(body)['query'] if query == 'count': count = '%s' % self.api.model.query().count(100) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(count) return self.response.headers['Content-Type'] = 'application/json' def values(): for value in query['values']: if isinstance(value, dict): kind = value['kind'] id = int(value['value']) value = ndb.Key(kind, id) yield value items = self.api.model\ .gql(query['string'], *[i for i in values()])#\ #.fetch(1000) def get_items_json(): for item in items: try: self.api.__is_readable__(self, item) except HTTPError as e: pass else: yield self.api.item_to_JSON(item) json_data = {} json_data[self.api.plural_name] = [ i for i in get_items_json() ] self.response.out.write(json.dumps(json_data))
def call(self, payload, url='https://svcs.%spaypal.com/AdaptivePayments/Pay'): url = self.get_url(url) headers = { 'X-PAYPAL-SECURITY-USERID' : user, 'X-PAYPAL-SECURITY-PASSWORD' : password, 'X-PAYPAL-SECURITY-SIGNATURE' : signature, 'X-PAYPAL-APPLICATION-ID': app_id, 'X-PAYPAL-REQUEST-DATA-FORMAT' : 'JSON', 'X-PAYPAL-RESPONSE-DATA-FORMAT' : 'JSON', 'Content-Type': 'application/json' } ctx = ndb.get_context() res = ctx.urlfetch( url, headers=headers, payload=json.dumps(payload), method=urlfetch.POST ).get_result() if res.status_code != 200: raise RequestError(res.content) data = json.loads(res.content) envelope = data['responseEnvelope'] ack = envelope.get('ack') or envelope.get('ACK') if ack != 'Success': raise AckError(res.content) return data
def _request(self, method, path, data={}): path = path.rstrip('/') + '/' if method == 'POST': authorization = 'Basic ' + base64.b64encode(self.auth_id+':'+self.auth_token) headers = { 'Authorization': authorization, 'Content-Type': 'application/json' } headers.update(self.headers) url = self._api + path payload = json.dumps(data) res = urlfetch.fetch( url, payload=payload, headers=headers, method=urlfetch.POST ) # elif method == 'GET': # r = requests.get(self._api + path, headers=self.headers, # auth=(self.auth_id, self.auth_token), # params=data) # elif method == 'DELETE': # r = requests.delete(self._api + path, headers=self.headers, # auth=(self.auth_id, self.auth_token), # params=data) # elif method == 'PUT': # headers = {'content-type': 'application/json'} # headers.update(self.headers) # r = requests.put(self._api + path, headers=headers, # auth=(self.auth_id, self.auth_token), # data=json.dumps(data)) content = res.content if content: try: response = json.loads(content) except ValueError: response = content else: response = content return (res.status_code, response)
def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on Dropbox. """ response = self.make_request("http://api.dropbox.com/0/account/info", token=access_token, secret=access_secret, protected=True) data = json.loads(response.content) user_info = self._get_default_user_info() user_info["id"] = data["uid"] user_info["name"] = data["display_name"] user_info["country"] = data["country"] return user_info
def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on Twitter. """ response = self.make_request( "https://api.twitter.com/1.1/account/verify_credentials.json", token=access_token, secret=access_secret, protected=True) data = json.loads(response.content) user_info = self._get_default_user_info() user_info["id"] = data["id"] user_info["username"] = data["screen_name"] user_info["name"] = data["name"] user_info["picture"] = data["profile_image_url"] return user_info
def update_item(self, view, item): data = json.loads(view.request.body)[self.name] for field in self.field_list: value = None if isinstance(field.field, ndb.KeyProperty): id = data.get(field.belongs_to_name, None) if id: id = int(id) kind = field.model key = ndb.Key(kind, id) value = key elif isinstance(field.field, ndb.UserProperty): email = data.get(field.underscored_name, None) if email: value = users.User(email) else: value = data.get(field.underscored_name, None) if value: setattr(item, field.name, value)
def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on MySpace. """ response = self.make_request("http://api.myspace.com/v1/user.json", token=access_token, secret=access_secret, protected=True) data = json.loads(response.content) user_info = self._get_default_user_info() user_info["id"] = data["userId"] username = data["webUri"].replace("http://www.myspace.com/", "") user_info["username"] = username user_info["name"] = data["name"] user_info["picture"] = data["image"] return user_info
def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on Yammer """ user_info = self._get_default_user_info() # Grab the user's profile from Yammer. response = self.make_request("https://www.yammer.com/api/v1/users/current.json", token=access_token, secret=access_secret, protected=False, headers={"x-li-format":"json"}) data = json.loads(response.content) user_info = self._get_default_user_info() user_info["id"] = data["name"] user_info["picture"] = data["mugshot_url"] user_info["name"] = data["full_name"] return user_info
def _lookup_user_info(self, access_token, access_secret): """Lookup User Info. Lookup the user on LinkedIn """ user_info = self._get_default_user_info() # Grab the user's profile from LinkedIn. response = self.make_request("http://api.linkedin.com/v1/people/~:" "(picture-url,id,first-name,last-name)", token=access_token, secret=access_secret, protected=False, headers={"x-li-format":"json"}) data = json.loads(response.content) user_info["id"] = data["id"] user_info["picture"] = data["pictureUrl"] user_info["name"] = data["firstName"] + " " + data["lastName"] return user_info
def post(self): body = self.request.body if json.loads(body).get('query', None): return self.query() self.create()
def get_request_method(self): if self.request.method == 'POST' and json.loads(self.request.body).get( 'query', None): return 'GET' return self.request.method
def get_request_method(self): if self.request.method == 'POST' and json.loads(self.request.body).get('query', None): return 'GET' return self.request.method