Facebook登录没有JSSDK,如果已经授权,如何获得令牌

时间:2013-10-16 11:18:34

标签: vb.net facebook .net-4.5

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

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

提前致谢

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分: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/,“交换访问令牌的代码”部分在页面上稍微低一点。

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

此致 王子