def post(self): oauth_version = self.request.get('oauth_version') oauth_nonce = self.request.get('oauth_nonce') oauth_timestamp = self.request.get('oauth_timestamp') oauth_consumer_key = self.request.get('oauth_consumer_key') oauth_signature = self.request.get('oauth_signature') xoauth_requestor_id = self.request.get('xoauth_requestor_id') opensocial_method = self.request.get('opensocial_method') post_body = self.request.body post_data = simplejson.loads(post_body)[0] id = post_data.get('id') params = {} for key, value in self.request.params.mixed().items(): params[key] = value.encode('utf-8', 'ignore') oauth_request = oauth.OAuthRequest.from_request(self.request.method, self.request.url, params) consumer = oauth.OAuthConsumer('oauth.org:123456789', 'not_a_secret') signature_method = oauth.OAuthSignatureMethod_HMAC_SHA1() built_signature = signature_method.build_signature(oauth_request, consumer, None) verified = built_signature == oauth_signature data = { 'request': { 'method': self.request.method, 'url': self.request.url, 'oauth_version': oauth_version, 'oauth_nonce': oauth_nonce, 'oauth_timestamp': oauth_timestamp, 'oauth_consumer_key': oauth_consumer_key, 'oauth_signature': oauth_signature, 'post_body': post_body }, 'response': { 'built_signature': built_signature }, 'verified': str(verified), } json = { 'id': id, 'data': data } output = simplejson.dumps([json]) if verified: logging.info(output) else: logging.error(output) self.response.out.write(output)
def get_rpc_body(self): return simplejson.loads(self.__rpc_body)