使用Django / Python为Facebook应用程序创建Like-Gate(显示选项卡)

时间:2012-03-24 15:51:22

标签: python django facebook

我正在使用Python / Django构建一个Facebook应用程序。我安装了FanDjango,效果很好。还有一件我需要的东西。

我想为应用程序构建一个“喜欢门”。我希望该应用能够检测用户是否“喜欢”粉丝页面,然后才能查看其大部分内容。我还没有找到一个好的解决方案。

我对使用像PyFacebook这样的东西很谨慎。有人可以建议一个好的选择吗?感谢。

3 个答案:

答案 0 :(得分:2)

感谢。我通过阅读我已经安装的facepy模块中的文档来实现这一点。以下是您访问特定页面的用户“赞”信息的方法:

from facepy import SignedRequest
if 'signed_request' in request.REQUEST:
    signed_request = SignedRequest.parse(request.REQUEST.get('signed_request'), settings.FACEBOOK_APPLICATION_SECRET_KEY)
if signed_request.page.is_liked:
    test = "yes!"
else:
    test = "no!"  

答案 1 :(得分:2)

Fandjango包裹着facepy,所以它实际上更容易。通过pip仅安装Fandjango以避免冲突。

在包含请求对象的视图中,您只需检查

即可
request.facebook.signed_request.page.is_liked

并执行不同的操作。请记住,如果应用不在页面中,该页面将为“无”。

答案 2 :(得分:1)

我不是Facebook的专家,并且没有使用Facebook图表那么多,但这应该有效。

一旦您对用户进行了身份验证,就可以通过Facebook Graph获取他们的喜欢:

https://graph.facebook.com/me/likes/{your_contents_graph_id}?access_token={access_token}

在Python中,我可以通过以下方式查询:

import requests
url = "https://graph.facebook.com/me/likes/{your_contents_graph_id}?access_token={access_token}".format(your_contents_graph_id=your_contents_graph_id, access_token=access_token)
r = request.get(url)
if r.status_code == '200':
    page_liked = True
else:
    page_liked = False

所有这些说,我不会喜欢您的内容。我或其他任何人都不喜欢他们没有完整审查的内容。您可能想要考虑一种让人们查看您内容的替代方法。