3

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

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

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

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

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

4

1 回答 1

1

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

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

存储 facebook 令牌的字段类型是什么?

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

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

于 2012-06-28T14:16:49.603 回答