【问题标题】:Reading facebook access token from redirect uri in Java desktop application从 Java 桌面应用程序中的重定向 uri 读取 facebook 访问令牌
【发布时间】:2014-07-11 22:44:49
【问题描述】:

“当使用桌面应用程序并登录时,Facebook 会将人们重定向到上述的 redirect_uri,并在 URI 片段中放置一个访问令牌和一些其他元数据(例如令牌到期时间):

https://www.facebook.com/connect/login_success.html# access_token=ACCESS_TOKEN... 您的应用需要检测此重定向,然后使用您正在使用的操作系统和开发框架提供的机制从 URI 中读取访问令牌。然后您可以直接跳到检查访问令牌步骤。 "

这是 facebook 文档中关于通过桌面应用程序构建手动登录流程的内容。 我的问题是如何在 java 桌面应用程序中从重定向的 uri 中读取访问令牌?

【问题讨论】:

  • 你的意思是你在服务器上运行Java还是Java-applet?如果您在服务器上运行 Java,您将无法读取它。 Web 浏览器永远不会将 URL 的哈希部分发送到服务器
  • 如果您的应用正在生成 webview,您可能能够访问该 webview 中显示的当前 URI - 您如何打开登录对话框?
  • 我只是将以下 url facebook.com/dialog/oauth?client_id=************redirect_uri=facebook.com/connect/login_success.html&response_type=token 重定向到桌面浏览器。浏览器显示登录对话框,一旦您授权该应用程序,它就会重定向到带有作为参数附加的访问令牌的 url,但此 url 仅保留几秒钟,然后变为:facebook.com/connect/blank.html#_=_
  • 你找到答案了吗?

标签: java facebook desktop-application facebook-oauth facebook-access-token


【解决方案1】:

看看我的答案:JAVA : how to extract youtube URL from facebook.com/l.php?u=

它处理类似的事情,解析 URL 并查找参数的内容。您需要捕获成功登录后 FB 重定向到的 URL。此 URL 包含给定的访问令牌。

看看https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0#login

引用:

在使用桌面应用程序并登录时,Facebook 会将用户重定向到 上面提到的 redirect_uri 并放置一个访问令牌 URI 片段中的一些其他元数据(例如令牌到期时间):

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

您的应用需要检测此重定向,然后读取访问令牌 使用 OS 和开发提供的机制脱离 URI 您正在使用的框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2013-08-05
    相关资源
    最近更新 更多