Facebook内容在服务器端获取

时间:2012-06-28 13:18:39

标签: python django facebook

我的目标是开发iPhone应用程序,该应用程序可用于查看部分由来自电话所有者的Facebook好友的数据(状态,照片,视频)组成的内容。

换句话说,iPhone应用程序应该与一些生成内容的后端服务器进行交互,这个后端应该从Facebook获取数据。 目前我正在考虑将Django用于后端。

之前我没有使用任何社交api,我有一种直觉,认为此方案中的auth可能会导致一些问题,主要是因为我有用户,应该在设备端输入login / pass并获取实际内容(来自用户的fb好友),服务器端。

有什么可以帮助我实施这样的计划? fb api会提供这样的东西吗?

请注意,这不是一个网络项目,我有原生的iPhone应用程序。

1 个答案:

答案 0 :(得分:1)

这是完全可行的,只是依赖于你实现auth结构,并理解为facebook上的app授予权限的所有操作都需要执行重定向。这可能涉及在应用程序外打开浏览器,或者您可以仅使用IPhone SDK进行身份验证,并在OAuth流程完成后将客户端设备的access_token发送到您的服务器。

对于希望与Facebook / Twitter / Google +其他OAuth提供商一起设置自己的身份验证系统的应用程序,这是一种非常常见的方法。您维护与某些Facebook用户关联的本机用户ID,并在必要时获取访问令牌。获取永久脱机访问的过程已从持久令牌更改为您刷新的令牌。我将引用您的另一个讨论,其中包含所有相关细节:

What field type to store the facebook token?

一旦获得并保存了有效的access_token,无论是在持久存储中还是在会话中,您都可以使用它来访问客户端SDK用于获取和交换数据的相同端点。这通常通过一些HTTP库来完成。例如,SDK for PHP仅通过自动执行身份验证过程,然后在您的请求数据中嵌入访问凭据,从浏览器窗口加快此过程。这可以通过使用带有标准HTTP库(python中的urllib或HTTPlib)的endpts并手动将新获得的access_token设置为要发送到图API的请求变量来在服务器端进行模拟。

如果您正在使用python路线并且您在客户端的需求将通过电话完全处理,我强烈建议您查看Flask,这是{{3}的变体WSGI库。这个工具真的不能用于旋转快速的结束,这些结束回显了一些序列化的数据(在你的情况下,很可能直接来自FB的JSON)。我一直喜欢它用于Web服务类型工作,因为它让您可以决定使用哪些库来满足您的其他需求,从而使部署的代码库尽可能小。