0

因此,我正在使用 facebook 集成更新一个较旧的桌面应用程序(用 VB,.net 4.0 编写)并按照此处找到的指南,并且能够成功获取令牌(通过解析嵌入式 webview 的 uri,如果它包含“令牌=")。现在我的问题是,如果我尝试使用已在先前会话中批准该应用程序的 facebook 帐户登录,则 web 视图将被重定向到https://www.facebook.com/connect/login_success.html,而没有任何令牌信息。

我是否必须记录我手动生成的所有令牌(即成功生成令牌时,我可以调用他们的个人资料信息,使用他们的 FB ID 作为密钥并保存令牌)?即使我这样做了,由于电子邮件和密码直接输入到 facebook 登录窗口,我如何检查用户是否已经拥有令牌?

提前致谢

4

2 回答 2

1

好的,所以我终于自己弄清楚了。我的错误显然是直接请求access_token(即https://www.facebook.com/dialog/oauth?response_type=token ..)以尝试节省时间。

我通过请求“代码”来修复它(即https://www.facebook.com/dialog/oauth?response_type=code),然后我用它来发出第二个请求以检索记录的访问令牌此处:https ://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/ ,页面下方的“交换访问令牌代码”部分。

希望这对将来的某人有所帮助,这对我来说非常令人沮丧。

问候,王子

于 2013-10-18T08:37:29.320 回答
1

访问令牌可以随时更改,您需要每次都获取它。拿到token后,立即获取用户信息https://graph.facebook.com/me?access_token= ??? 并使用该 ID 查找他们的数据库信息。

我无法快速找到 facebook 信息,但在 google 的 oauth 信息中显示“访问令牌还与定义您的客户端应用程序可以访问的数据类型的有限范围相关联(例如“管理您的任务”)。 OAuth 2.0 的重要目标是提供对受保护数据的安全便捷访问,同时最大限度地减少访问令牌被盗时的潜在影响。”

https://code.google.com/p/google-api-php-client/wiki/OAuth2

于 2013-10-16T22:07:07.730 回答