没有浏览器的Facebook Open Graph

时间:2010-05-03 19:35:53

标签: facebook java-me middleware facebook-graph-api

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

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

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

由于

5 个答案:

答案 0 :(得分:3)

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

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

  1. 设备调用服务器以获取代码
  2. 设备在屏幕上显示代码并指示用户转到服务器上的URL并输入代码
  3. 服务器将用户重定向到Facebook并获取OAuth令牌,用户被告知返回设备
  4. 设备使用代码调用服务器并获取OAuth令牌
  5. 设备现在可以代表用户直接拨打电话

答案 1 :(得分:0)

根据关于“Desktop Application Authentication”的文档,我不相信你想要的结果:

  

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

然而,显然某些供应商可能会这样做,因为微软的Xbox 360 Facebook应用程序完全符合您的建议。我有兴趣看看是否有人为了这样做而挖出了任何API,这是Facebook不想要的最明显的文档。

答案 2 :(得分:0)

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

如果你搞清楚了,请在这里发一个详细的答案,这样我就可以......:)

答案 3 :(得分:0)

我认为它有可能虽然它非常复杂并且会受到Facebook界面突然变化的影响。它可能会破坏你和Facebook之间的协议。

你所做的就是效仿Facebook。

您必须设置Facebook应用程序的一条路径。获得用户授权后,您可以使用Graph API。

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

了解授权机制后,您可以将其替换为自己的授权机制。之后的所有内容都在Graph API上。

另一条路径是模仿Facebook登录和消息以及通知过程。需要捕获和分析。

答案 4 :(得分:0)

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

您可能无法在机顶盒环境中使用屏幕抓取器(虽然它是基于Java的,但它可能会起作用)。即使它没有,你也可以在java中实现类似的策略,使得浏览器的HTTP调用可以加载登录页面并提交用户的凭据。为了确保用户的信息安全,请确保您使用的任何HTTP客户端库都支持HTTPS。

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