2012-06-28 41 views
3

我的目标是开发iPhone应用程序,该应用程序可用于查看部分由来自手机所有者的Facebook朋友的数据(状态,照片,视频)组成的内容。在服务器端获取Facebook内容

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

我以前没有使用过任何社交api,我有一种直觉认为在这个方案中auth可能会导致一些问题,主要是因为我有用户,应该在设备端和实际内容上输入登录/传递在服务器端获取(来自用户的fb朋友)。

什么可以帮助我实现这样的计划? fb api是否提供了类似的东西?

请注意,这不是一个Web项目,我有本机iPhone应用程序。

回答

1

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

对于希望与Facebook/Twitter/Google +其他OAuth提供商一起设置自己的认证系统的应用程序,这是一种非常常见的方法。您维护与某些Facebook用户关联的本地用户标识并在必要时获取访问标识。获取永久离线访问的过程已从持续令牌更改为您刷新的过程。我会参考你拥有所有的相关细节另一个讨论:

What field type to store the facebook token?

一旦获得并保存有效的access_token,无论是在永久存储或会话,你可以用它来访问客户端SDK用来获取和交换数据的相同端点。这通常用一些HTTP库来完成。例如,PHP的SDK只是通过自动执行认证过程,然后将访问凭证嵌入到请求数据中,从浏览器窗口内加速此过程。这可以在服务器端通过使用带有标准HTTP库(urllib或python中的HTTPlib)的endpt来完全模拟,并手动将新获得的access_token设置为请求变量,以便将其发送到图形API。

如果您要使用python路由,并且您的客户端需求将通过电话完全处理,那么我强烈建议您查看Flask,它是Werkzeug WSGI库的变体。这个工具实际上不能被打败,因为它能够快速转换出一些序列化的数据(在你的情况下,很可能直接来自FB)。我一直很喜欢它的Web服务类型的工作,因为它让你决定使用哪些库来满足其他需求,从而使部署的代码库尽可能小。