Facebook粉丝页面选项卡的Django视图

时间:2011-10-28 10:51:06

标签: django facebook facebook-page

我正在为我的网站构建一个页面标签,它需要通过facebook的页面ID进行自定义,这就是为什么我为此创建了一个视图。

@csrf_exempt
def iframe_playlist(request):
code = request.REQUEST.get("signed_request", None)
code = 'none' if code == None else 'none'
return HttpResponse(code) #<<< I tried to output the request 
                #<<< and see if the request exists. but it always shows to none.
code = code.split('.', 2)
code = facebook.base64_url_encode(code)
code = json.loads(code)
uid = json['user_id']
site_user = get_object_or_404(FacebookProfile, uid=uid)
app = get_object_or_404(AppPage, user=site_user.user)
playlist = app.playlist
image = app.image if app.image else None

1 个答案:

答案 0 :(得分:0)

我看到了一些不同的错误,最重要的一个是这一行:

code = 'none' if code == None else 'none'

基本上说:

code = 'none' # Always!

难怪下一行总是打印“无”;)此外,你应该使用if code is None代替if code == None,这非常重要!

你真正需要的是改变这些界限:

 code = request.REQUEST.get("signed_request", None)
 code = 'none' if code == None else 'none'

为:

code = request.REQUEST.get("signed_request", 'none')

稍后,当代码工作时,您甚至不需要设置字符串值“none” - 它只是用于我理解的调试。

此外,“signed_request”应该由Facebook传递为POST。根据Django docs

  

强烈建议您使用GET和POST而不是REQUEST,   因为前者更明确。

如果第一个提示无效,请检查您的网址是否正确,具体如下:Facebook iframe tab signed request always empty