我试图通过我的Facebook画布应用程序的Ajax(RPC)调用获取一些用户信息。
由于我正在使用facebook API for python,我先得到signed_request:
signed_request = utility.parse_signed_request(self.request.get('signed_request'),FACEBOOK_APP_SECRET)
我交换了令牌,并将访问令牌放在当前会话中:
def get_long_lived_access_token(self, EXISTING_ACCESS_TOKEN):
url = "https://graph.facebook.com/oauth/access_token?client_id="
url += FACEBOOK_APP_ID
url += "&client_secret="
url += FACEBOOK_APP_SECRET
url += "&grant_type=fb_exchange_token&fb_exchange_token="
url += EXISTING_ACCESS_TOKEN
response = urllib2.urlopen(url).read()
self.session['oauth_token'] = response
如果我调用facebook API(在交换前使用访问令牌):
graph = facebook.GraphAPI(signed_request['oauth_token'])
me = graph.get_object("me")
它工作得很好,但如果我尝试在Ajax调用期间创建图形(两者都使用短期交换访问令牌):
graph = facebook.GraphAPI(self.session['oauth_token'])
me = graph.get_object("me")
它给了我一个错误:
GraphAPIError: An active access token must be used to query information about the current user.
我还检查了https://graph.facebook.com/me?access_token=xxxxxxxxxxxxxxxxx中交换的访问令牌有效性 它是一个有效的访问令牌。
在Ajax调用期间,如何让用户访问图形对象?