From 7e1974b7b9ead0dc5985d7b7c3c787159f6985e8 Mon Sep 17 00:00:00 2001 From: anentropic Date: Fri, 15 Apr 2011 12:56:01 -0700 Subject: [PATCH 1/8] Edited src/facegraph/fql.py via GitHub --- src/facegraph/fql.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/facegraph/fql.py b/src/facegraph/fql.py index b3689fb..91ed5f9 100644 --- a/src/facegraph/fql.py +++ b/src/facegraph/fql.py @@ -116,8 +116,8 @@ def fetch_json(cls, url, data=None): msg = response.get("error_msg") args = response.get("request_args") e = GraphException(code, msg, args=args) - if self.err_handler: - self.err_handler(e) + if cls.err_handler: + cls.err_handler(e) else: raise e return bunch.bunchify(response) From 88ad128fc8fe52cc90e37c4f4ff194bb7bea6a8a Mon Sep 17 00:00:00 2001 From: anentropic Date: Fri, 15 Apr 2011 13:02:10 -0700 Subject: [PATCH 2/8] Edited src/facegraph/fql.py via GitHub --- src/facegraph/fql.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/facegraph/fql.py b/src/facegraph/fql.py index 91ed5f9..d19d216 100644 --- a/src/facegraph/fql.py +++ b/src/facegraph/fql.py @@ -107,7 +107,6 @@ def multi(self, queries, **params): return self.fetch_json(url) - @classmethod def fetch_json(cls, url, data=None): response = json.loads(cls.fetch(url, data=data)) if isinstance(response, dict): @@ -116,8 +115,8 @@ def fetch_json(cls, url, data=None): msg = response.get("error_msg") args = response.get("request_args") e = GraphException(code, msg, args=args) - if cls.err_handler: - cls.err_handler(e) + if self.err_handler: + self.err_handler(e) else: raise e return bunch.bunchify(response) From 055b816823a2a3305eb5b147c5275000a1550c06 Mon Sep 17 00:00:00 2001 From: anentropic Date: Fri, 15 Apr 2011 13:05:56 -0700 Subject: [PATCH 3/8] Edited src/facegraph/fql.py via GitHub --- src/facegraph/fql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/facegraph/fql.py b/src/facegraph/fql.py index d19d216..e16c957 100644 --- a/src/facegraph/fql.py +++ b/src/facegraph/fql.py @@ -108,7 +108,7 @@ def multi(self, queries, **params): return self.fetch_json(url) def fetch_json(cls, url, data=None): - response = json.loads(cls.fetch(url, data=data)) + response = json.loads(self.__class__.fetch(url, data=data)) if isinstance(response, dict): if response.get("error_msg"): code = response.get("error_code") From b437ff91d823b8db40770307073b47a9a55fe7ef Mon Sep 17 00:00:00 2001 From: anentropic Date: Fri, 15 Apr 2011 13:08:03 -0700 Subject: [PATCH 4/8] Edited src/facegraph/fql.py via GitHub --- src/facegraph/fql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/facegraph/fql.py b/src/facegraph/fql.py index e16c957..9f751b4 100644 --- a/src/facegraph/fql.py +++ b/src/facegraph/fql.py @@ -107,7 +107,7 @@ def multi(self, queries, **params): return self.fetch_json(url) - def fetch_json(cls, url, data=None): + def fetch_json(self, url, data=None): response = json.loads(self.__class__.fetch(url, data=data)) if isinstance(response, dict): if response.get("error_msg"): From c8f89b8328931b7b49133fbe2d54d5e35105c96f Mon Sep 17 00:00:00 2001 From: anentropic Date: Mon, 18 Apr 2011 08:57:08 -0700 Subject: [PATCH 5/8] fix attribute access example in Node class --- src/facegraph/graph.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/facegraph/graph.py b/src/facegraph/graph.py index 5ccb598..b1c8adf 100644 --- a/src/facegraph/graph.py +++ b/src/facegraph/graph.py @@ -408,7 +408,7 @@ class Node(bunch.Bunch): def user_location(user_id): user = graph[user_id]() - if 'location' in user: + if 'location' in user.keys(): return user.location return False From d2aa499f8bd3c682bf0436f93bf8f046db8a3266 Mon Sep 17 00:00:00 2001 From: anentropic Date: Fri, 6 May 2011 12:15:09 +0100 Subject: [PATCH 6/8] accept POST for signed_request --- src/facegraph/django/middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/facegraph/django/middleware.py b/src/facegraph/django/middleware.py index 170b57a..d9b5675 100644 --- a/src/facegraph/django/middleware.py +++ b/src/facegraph/django/middleware.py @@ -76,7 +76,7 @@ class FacebookCanvasMiddleware(object): def process_request(self, request): app_secret = self.app_secret(request) - raw_fbrequest = request.GET.get('signed_request', None) + raw_fbrequest = request.REQUEST.get('signed_request', None) if not (app_secret and raw_fbrequest): request.fbrequest = None return From 09ceed675ff1190aaf3ea59ad10989240d7f7796 Mon Sep 17 00:00:00 2001 From: anentropic Date: Tue, 10 May 2011 19:07:28 +0100 Subject: [PATCH 7/8] b64 functions from the facebook sample app --- src/facegraph/canvas.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/facegraph/canvas.py b/src/facegraph/canvas.py index b206626..a85d3d1 100644 --- a/src/facegraph/canvas.py +++ b/src/facegraph/canvas.py @@ -10,12 +10,13 @@ import signature +def b64url_encode(data): + return base64.urlsafe_b64encode(data).rstrip('=') + def b64url_decode(encoded): - """Decode a string encoded in URL-safe base64 without padding.""" - - # The padding should round the length of the string up to a multiple of 4. - padding_fixed = encoded + (((4 - (len(encoded) % 4)) % 4) * '=') - return base64.urlsafe_b64decode(str(padding_fixed)) + data = data.encode(u'ascii') + data += '=' * (4 - (len(data) % 4)) + return base64.urlsafe_b64decode(data) def decode_signed_request(app_secret, signed_request): From 902ee012a0d7ab2cab08052d570c07902b9fc5c6 Mon Sep 17 00:00:00 2001 From: anentropic Date: Tue, 10 May 2011 20:47:09 +0100 Subject: [PATCH 8/8] b64 functions from the facebook sample app --- src/facegraph/canvas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/facegraph/canvas.py b/src/facegraph/canvas.py index a85d3d1..333bdc2 100644 --- a/src/facegraph/canvas.py +++ b/src/facegraph/canvas.py @@ -13,7 +13,7 @@ def b64url_encode(data): return base64.urlsafe_b64encode(data).rstrip('=') -def b64url_decode(encoded): +def b64url_decode(data): data = data.encode(u'ascii') data += '=' * (4 - (len(data) % 4)) return base64.urlsafe_b64decode(data)