我正在为我的网站构建一个页面标签,它需要通过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
答案 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