我已经在互联网上搜索了好几天,但似乎找不到任何合适的例子。我对oauth2流程的理解是(如有错误请指正):
- 客户端程序向facebook请求一个request_token
- 客户端程序启动一个浏览器,给它一个包含client_id和request_token的地址,然后让给浏览器
- 用户登录/订阅并接受request_token
- 一旦焦点返回到客户端程序,该程序就会发送它之前获得的 request_token 以检查它是否已被授权;如果是,则返回访问 token
- 只要access_token有效,客户端程序就可以自由访问任何需要访问的内容
oauth2 stub 和 this page 似乎证实了这一点,但我找不到任何方法在 facebook 中获取 request_token。连here我找不到任何有用的东西。也可以获取 access_token 或包含 access_token 的 signed_request。
我的程序应该运行的平台包括 MacOSX、iOS、Win32、Linux。我们目前可以进行 http/https 通信,并且可以接受特定于平台的代码,例如 Win32 上的 ShellExecute()。
最佳答案
你为什么不查看 official docs而不是查看实现 OAuth 1.0 的提供商的文档?
由于 Facebook 没有实现直接满足您要求的流程,您可以使用的下一个最佳流程是 Client Side Authentication flow .
它基本上是这样工作的:
- 从您的应用程序打开一些网络浏览器/ View ,并将其定向到 Facebook 的
/dialog/oauth
端点,并将参数作为查询字符串。 - 让用户登录并在其中授予您的应用程序访问权限。
- 从浏览器 View 中的响应重定向中捕获
access_token
片段。
如何从您的应用程序打开 Web 浏览器/ View 以及如何捕获重定向在很大程度上取决于您使用的操作系统/库,但通过一些研究应该是可行的。
关于c++ - 在 C++ 中对 facebook 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280964/