5

我正在编写一个 VC++ 应用程序,我想允许用户通过 Facebook 登录。查看文档,看起来它们只支持服务器、JavaScript 和本地移动客户端上的 php。

现在我想做的是在应用程序中打开一个浏览器窗口,让用户进行身份验证,然后获取身份验证令牌来进行本机应用程序调用。

我正在考虑的另一件事是让用户在我的应用程序中输入 Facebook 用户名和密码,然后直接使用它,但我不确定这是否允许。

如何通过 Facebook 验证桌面应用程序?

4

1 回答 1

3

现在我想做的是在应用程序中打开一个浏览器窗口,让用户进行身份验证,然后获取身份验证令牌来进行本机应用程序调用。

实际上,您走在正确的轨道上:Facebook 为您提供了所谓的“手动流程”。

因此,这就是您在应用程序中使用 Facebook 验证用户的方式,分三个步骤:

步骤1

当用户应该登录 Facebook 时,打开嵌入式浏览器并指向这个 url:

https://www.facebook.com/dialog/oauth?client_id={app-id}&display=popup&redirect_uri=https://www.facebook.com/connect/login_success.html

这里需要注意三点:

  1. 当然,您需要替换{app-id}为您的应用程序的 id。
  2. 使用桌面应用程序时必须将redirect_uri设置为(这是您的情况)。https://www.facebook.com/connect/login_success.html
  3. 您还可以指定其他参数,例如,如果您需要向用户请求扩展权限(publish_actions等)有关更多信息,请参阅可选参数的完整列表

第2步

确保您在应用的高级设置中启用了以下开关:

本机或桌面应用程序和嵌入式应用程序密钥 OAuth 设置

出于安全原因,您应该https://www.facebook.com/connect/login_success.html在“有效的 OAuth 重定向 URIs”下输入,但它在没有明确设置的情况下对我有用。

第 3 步

现在,Facebook 服务器的重定向应该将浏览器窗口从上方导航到重定向 uri。它还将在 uri 的片段中包含访问令牌,如下所示:

https://www.facebook.com/connect/login_success.html#access_token=ACCESS_TOKEN...

使用ACCESS_TOKEN以便对 Facebook API 进行任何后续调用 - 等等!

于 2015-05-20T10:06:49.577 回答