用于将Django与Facebook集成的Python库
我决定用 Facebook 和 Django(或者 Twisted,但这不重要)来写一些应用程序,现在我在选择合适的工具上遇到了困难。我发现有很多用 Python 写的 Facebook API 封装库:
- 官方的,但似乎不再维护的 Python-SDK
- 新的,正在积极开发,但似乎太新了 Django-facebook
- 老牌的,但没有维护的 pyfacebook
- 简单,维护得不错,但没有文档的 fandjango
- 还有一些非常基础的工具
我在这里看到过 一些 类似 的问题,但我注意到 Facebook 会定期对他们的 API 进行重大更改,这些建议可能已经过时,或者可能出现了新的库。我还想了解这些库之间最重要的区别。当然,有好的文档和教程就更好了。
3 个回答
这要看你想做什么。我之前也遇到过同样的问题,最后我使用了django-social-auth,这个工具可以让你通过Facebook和其他很多社交网络登录。它还可以让你从这些网络中提取令牌,然后使用它。
对于Facebook特定的功能,我使用了facebook-sdk,不过因为你已经有工具来管理令牌,所以如果将来你的工具过时了,其实可以用任何其他库来替代。这样的话,你以后也可以添加更多的社交网络。
这个答案其实要看你想要实现什么,因为这些API差别挺大的。
pyfacebook - 这是针对旧版的API。
python-sdk - 这是针对“新”的开放图谱协议(我不会说它不再支持,因为它只是对Facebook开放图谱协议的一个简单封装,所以可以立即支持Facebook提供的所有新功能,而不需要在这个库上进行开发工作)。
django-facebook - 这个比python-sdk更高级,帮助你在网站上添加Facebook连接功能,并且似乎为创建可以“在”Facebook内部运行的应用铺平了道路,而不仅仅是帮助那些在Facebook外部的网站获取Facebook数据。
我没听说过fandjango,而且GitHub现在似乎也无法访问,所以我无法对此发表评论。
如果你只是想用Facebook添加用户登录功能,那么像django-socialauth这样的东西可能会对你有帮助。
如果你想开始探索社交图谱,那么python-sdk是个不错的选择。
我还建议你查看一下你想要的功能是否被开放图谱协议支持,过去一年这个协议有了改进,但有些功能仍然让人沮丧地不支持,而旧版API却支持……
我觉得Django Facebook是个不错的选择。不过我这个观点可能有点偏见,因为我自己在我的创业公司Fashiolista.com上用过这个工具,并且我们在实际运营中使用它。(我们的网站规模挺大的,所以大部分边缘情况都已经解决了)
Django Facebook还包含了OpenFacebook,这是一个用于开放图谱协议的Python API客户端。我知道的唯一一个完全更新并且在积极维护的Python客户端就是它。
你可以看看这个链接: https://github.com/tschellenbach/Django-facebook
PS. 刚发布了一些新的装饰器,让你开始使用变得非常简单。这些装饰器确实很新,最近出现了一些bug。这个项目本身已经有一年历史了(自从开放图谱API发布以来),整体上还是相当稳定的。 http://www.mellowmorning.com/