我是Facebook应用程序的新手,我已经在GAE上运行了一个应用程序(使用python)。我想将它与Facebook集成,以便我可以访问一些用户的数据,以帮助我个性化应用程序(数据,如喜欢的页面,兴趣,他们来自哪里等)。并且还要分享应用程序的输出以供朋友看到。
我以为我会选择https://developers.facebook.com/
上的Facebook应用选项我不知道从哪里开始,有一些教程(大多数都很老,有些使用不推荐使用的脚本,所以有点担心),还有FBML ..我想的也许我只能使用Facebook登录获得相同的数据,然后使用FQL访问这些数据。
我不知道是否会遇到新的https限制(Facebook表示自2011年10月起必须拥有SSL证书)。
如此底线..我从哪里开始?
答案 0 :(得分:3)
我们走了:
从此链接下载:https://github.com/jgorset/facepy/tree/master/facepy:
从下载中,您将拥有:
signed_request.py
解析将在facebook中发布的signed_request
画布网址:https://apps.facebook.com/myapp
方法
POST
和graph_api.py
对graphapi
https://developers.facebook.com/docs/reference/api/
注意:您将从facebook js sdk编写的cookie中包含access_token 对于fb js sdk,请参阅此答案:javascript部分的https://stackoverflow.com/a/8625873/492258
在您的索引页面中:
fb_app_secret='abcd...'
fb_app_id = 123345
def index(request):
if request.POST:
signed_request_param = request.POST.get('signed_request)
if signed_request_param:
#signed_request.py
signed_request_dic = signed_request.parse_signed_request(signed_request_param, fb_app_secret)
if signed_request_dic:
if signed_request_dic.has_key('user_id'):
fb_uid = signed_request_dic['user_id']
#you got your man that is previously authorized your fb app : mypp
对于连续的通话,你将使用我上面提到的cookie:
def my_page(request):
my_dict = None
my_dict = signed_request.get_user_from_cookie(request.COOOKIES, fb_app_id, fb_app_secret)
if my_dict:
if my_dict.has_key('uid'):
fb_uid = my_dict['uid']
fb_uid = int(fb_uid)
#you got your registered user again.
对于注册,从fb js sdk做的最简单的方法,我已经提到了
#finally for SSL, in your app.ymal:
- url: .*
script: django_bootstrap.py
secure: optional
不要忘记为Internet Explorer设置P3P,iframre cookie问题:
def my_page(request):
....
response = render_to_response('mypage.html', view_params )
response["P3P"] = 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'
return response
答案 1 :(得分:2)
您需要针对Facebook验证您的服务器应用(GAE):您需要实施server-side authentication flow。
请参阅LeanEngine(开源)以获取示例实现:server auth classes。
一旦您通过身份验证并获得用户FB身份验证令牌,您就可以使用FB Graph API来获取各种数据。
答案 2 :(得分:-2)