Facebook应用程序托管在Google App Engine上

时间:2012-01-05 19:19:00

标签: facebook google-app-engine facebook-graph-api facebook-fql python-2.7

我是Facebook应用程序的新手,我已经在GAE上运行了一个应用程序(使用python)。我想将它与Facebook集成,以便我可以访问一些用户的数据,以帮助我个性化应用程序(数据,如喜欢的页面,兴趣,他们来自哪里等)。并且还要分享应用程序的输出以供朋友看到。

我以为我会选择https://developers.facebook.com/

上的Facebook应用选项

我不知道从哪里开始,有一些教程(大多数都很老,有些使用不推荐使用的脚本,所以有点担心),还有FBML ..我想的也许我只能使用Facebook登录获得相同的数据,然后使用FQL访问这些数据。

我不知道是否会遇到新的https限制(Facebook表示自2011年10月起必须拥有SSL证书)。

如此底线..我从哪里开始?

3 个答案:

答案 0 :(得分:3)

我们走了:

从此链接下载:https://github.com/jgorset/facepy/tree/master/facepy

从下载中,您将拥有:
signed_request.py解析将在facebook中发布的signed_request 画布网址:https://apps.facebook.com/myapp方法

中的POST

graph_api.pygraphapi 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)

  1. 为您的网络服务器购买SSL证书,这样您就可以遵守新规则。
  2. 创建/设置您的应用以获取您的应用ID和密码。
  3. 研究Javascript SDK,我认为这是最容易实现的。
  4. 研究Graph API并了解对象及其属性及其连接。
  5. 您可以在此处使用JS SDK:https://developers.facebook.com/tools/console/和此处的图表:https://developers.facebook.com/tools/explorer
  6. 在您的网络服务器上慢慢地向您的网页介绍代码。首先让身份验证工作,然后继续获取基本用户信息。
相关问题