如何在不显示Google登录页面的情况下使用用户名和密码获得Google Buzz的OAuth代币?

StackOverflow https://stackoverflow.com/questions/2907803

  •  04-10-2019
  •  | 
  •  

要阅读Google Buzz活动, 需要授权令牌. 。 Web应用程序将重定向到Google登录页面,在该页面上,用户登录并将令牌返回到Web应用程序。

但是我有一个没有UI的本地Java应用程序(例如脚本)。此应用程序知道用户名和密码。如何使用此用户名和密码获得授权令牌,而无需介绍Google登录页面?

有帮助吗?

解决方案

这可能是一个坏主意,但是您可以使用像HTTPCLIENT这样的HTTP库来提出用户相同的请求。您将需要使用观看标题的实用程序来弄清楚需要击中哪些URL以及需要使用的标题,但是可以自动化此URL。如果Google曾经更改他们的页面布局, idS, classES或整体页面结构,您的解析代码将断开。

此外,您还需要能够从服务器捕获返回响应,这将涉及在某个Web端点接收响应。这可以用下面概述的解决方案2来解决。

总之。

解决方案1-验证

  1. httpclient 反对身份验证URL。
  2. 标签 要解析页面响应,请存储页面所需的任何数据(如果有)。
  3. XOM 如果需要,XML解析器可以处理[1.2]的响应。
  4. 针对授权URL的HTTPCLIENT请求

解决方案2-接收Google的回复

  1. 启动 码头 服务器。
  2. 将响应URL设置为 localhost:****/whatever 在身份验证时。
  3. 接受码头中的回应。在命令行应用程序中检索响应。

免责声明:

这都是未经测试和高度理论的。可能有一种更好的方法来做到这一点,但是要避免仅打开Web浏览器并允许用户登录的工作是很多工作。

其他提示

简短的答案是您不能。您绝对不想尝试刮擦Google登录页面或类似的内容。

最好的选择是做类似轻巧的嵌入式码头服务器,用于接收Google Oauth Flow的回调。这正是为了 Oacurl, ,我们的Oauth意识到卷曲包装。该代码在 logincallbackserver.java.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top