1

我已经在互联网上搜索了几天,但似乎找不到任何像样的例子。我对 oauth2 流程的理解是(如果我错了,请纠正我):

  1. 客户端程序向 facebook 请求 request_token
  2. 客户端程序启动一个浏览器,给它一个包含 client_id 和 request_token 的地址,然后让给浏览器
  3. 用户登录/订阅并接受 request_token
  4. 一旦焦点返回到客户端程序,程序就会发送它之前获得的 request_token 以检查它是否已被授权;如果是,则返回访问令牌
  5. 只要 access_token 有效,客户端程序就可以自由访问它需要的任何内容

oauth2 stub 和this page似乎证实了这一点,但我找不到任何方法在 facebook 中获取 request_token。即使在这里我也找不到任何有用的东西。也可以获取包含 access_token 的 access_token 或 signed_request 。

我的程序应该运行的平台包括 MacOSX、iOS、Win32、Linux。我们目前可以进行 http/https 通信,并且可以接受特定平台的代码,例如 Win32 上的 ShellExecute()。

4

1 回答 1

0

为什么不查看官方文档而不是查看实现 OAuth 1.0 的提供者的文档?

由于 Facebook 没有实现直接满足您要求的流程,因此您可以使用的下一个最佳流程是Client Side Authentication flow

它基本上是这样工作的:

  1. 从您的应用程序中打开一些 Web 浏览器/视图,并将其定向到 Facebook 的/dialog/oauth端点,并将参数作为查询字符串。
  2. 让用户登录并在其中授予您的应用程序访问权限。
  3. 从浏览器视图中的响应重定向中捕获access_token片段。

如何从应用程序打开 Web 浏览器/视图以及如何捕获重定向在很大程度上取决于您使用的操作系统/库,但应该可以通过一些研究来实现。

于 2012-09-05T15:42:24.503 回答