我正在尝试执行https://github.com/pythonforfacebook/facebook-sdk/的appengineexample。但是,我的cookie值始终为None。我做了调试,发现它确实携带信息但是在facebook.get_user_from_cookie中,它无法提取/解析值。
有没有人能够执行此示例?我使用的是Python25。我试图在我的例子中实现类似的功能。
我需要通过Facebook登录用户并将其详细信息存储在应用引擎数据存储区中。
答案 0 :(得分:0)
产生此问题可能有几个原因。 如果没有详细信息,我们无法帮助。 尝试记录一些信息将有助于我们确定错误是什么。
https://github.com/pythonforfacebook/facebook-sdk/blob/master/facebook.py
由于您使用get_user_from_cookie函数收到了None。 打开facebook.py,在将产生None结果的行中添加两个日志。然后日志可以告诉问题在哪里。
def get_user_from_cookie(cookies, app_id, app_secret):
"""Parses the cookie set by the official Facebook JavaScript SDK.
cookies should be a dictionary-like object mapping cookie names to
cookie values.
If the user is logged in via Facebook, we return a dictionary with
the keys "uid" and "access_token". The former is the user's
Facebook ID, and the latter can be used to make authenticated
requests to the Graph API. If the user is not logged in, we
return None.
Download the official Facebook JavaScript SDK at
http://github.com/facebook/connect-js/. Read more about Facebook
authentication at http://developers.facebook.com/docs/authentication/.
"""
cookie = cookies.get("fbsr_" + app_id, "")
if not cookie:
logging.info("no cookies") # ADD LOG HERE!
return None
parsed_request = parse_signed_request(cookie, app_secret)
try:
result = get_access_token_from_code(parsed_request["code"], "",
app_id, app_secret)
except GraphAPIError:
logging.info("get access token failed") # ADD LOG HERE!!
return None
result["uid"] = parsed_request["user_id"]
return result