9

对于带有互联网的中间件系统(在机顶盒内工作),我想开发一个原始的 Facebook 界面,用户可以在其中输入他们的用户名和密码,在电视屏幕上显示他们最新的通知、消息和其他随意的东西使用最近的Facebook Graph API

这个中间件程序使用 Java ME 来运行程序(例如这个简单的 facebook 应用程序),它可以连接到互联网,但是它没有真正的网络浏览器。如果没有浏览器,它可以连接到任何 url 以检索 JSON 响应,但是我不确定如何在没有真正浏览器的情况下实现身份验证。

在这种情况下,是否可以进行 Facebook 身份验证?如果你这么认为,你会建议什么方法?

谢谢

4

5 回答 5

3

Facebook 为受信任的合作伙伴提供私有授权 API,以从用户名/密码中获取 OAuth 2 令牌。

更复杂的方法是执行类似于 Netflix 注册设备的方式:

  1. 设备调用服务器获取代码
  2. 设备在屏幕上显示代码并引导用户转到服务器上的 URL 并输入代码
  3. 服务器将用户重定向到 Facebook 并获得 OAuth 令牌,用户被告知返回设备
  4. 设备使用 Code 调用服务器并获取 OAuth 令牌
  5. 设备现在可以直接代表用户拨打电话
于 2011-08-23T15:23:38.127 回答
0

我认为这是可能的,尽管它非常复杂并且会受到 Facebook 界面的突然变化的影响。它可能会破坏您与 Facebook 之间的协议。

你所做的是模仿 Facebook。

您必须设置 Facebook 应用程序的一种途径。一旦你得到了用户的授权,你就可以使用 Graph API 来做一些事情。

您需要 Facebook 登录流程和授权流程。有一些关于 http/https 请求和响应的捕获工具。分析它们,包括标题和正文。

一旦你知道了授权机制,你就可以用你自己的来替换它。之后的一切都在 Graph API 上。

另一种方法是模拟 Facebook 登录以及消息和通知过程。需要捕获和分析。

于 2011-03-21T01:57:03.960 回答
0

这不是答案,但我正在尝试做同样的事情。查看这个人的博客,它使用另一台服务器来代理请求: cory wiles 博客

如果您弄清楚了,请在此处发布详细答案,以便我可以做到.. :)

于 2010-07-08T03:55:50.583 回答
0

过去,我使用了一个名为screen-scraper的工具(完全披露:我曾经在那里工作)来自动登录到 facebook。基本上,它模仿浏览器会话;它允许您设置会话变量(即用户名、密码),然后将其提交给 facebook,就像用户在浏览器中提交它们一样。

您可能无法在您的机顶盒环境中使用 screen-scraper(尽管它是基于 java 的,所以它可能会起作用)。即使没有,您也可以在 java 中实现类似的策略,使浏览器发出 HTTP 调用来加载登录页面并提交用户的凭据。为了保证用户信息的安全,请确保您使用的任何 HTTP 客户端库都支持 HTTPS。

代理工具和扩展,如CharlesFiddler2、Firebug、Chrome 的开发工具等,有助于准确查看浏览器在请求中向服务器发送的内容。

于 2011-08-03T15:51:22.363 回答
0

根据有关“桌面应用程序身份验证”的文档,我不相信您想要的结果是可能的:

Facebook 的 OAuth 实施不包括明确的桌面应用程序支持。但是,如果您的桌面应用程序可以嵌入 Web 浏览器,那么您可以使用 JavaScript 客户端使用的相同 OAuth 用户代理流轻松地将 Facebook 支持添加到您的应用程序中。

但是,某些供应商显然可以这样做,因为 Microsoft 的 Xbox 360 Facebook 应用程序完全符合您的建议。我很想看看是否有人在他们最明显的文档中挖掘了 Facebook 不想要的任何 API。

于 2010-05-07T04:02:09.370 回答