如何在不显示Google登录页面的情况下使用用户名和密码获得Google Buzz的OAuth代币?
-
04-10-2019 - |
题
要阅读Google Buzz活动, 需要授权令牌. 。 Web应用程序将重定向到Google登录页面,在该页面上,用户登录并将令牌返回到Web应用程序。
但是我有一个没有UI的本地Java应用程序(例如脚本)。此应用程序知道用户名和密码。如何使用此用户名和密码获得授权令牌,而无需介绍Google登录页面?
解决方案
这可能是一个坏主意,但是您可以使用像HTTPCLIENT这样的HTTP库来提出用户相同的请求。您将需要使用观看标题的实用程序来弄清楚需要击中哪些URL以及需要使用的标题,但是可以自动化此URL。如果Google曾经更改他们的页面布局, id
S, class
ES或整体页面结构,您的解析代码将断开。
此外,您还需要能够从服务器捕获返回响应,这将涉及在某个Web端点接收响应。这可以用下面概述的解决方案2来解决。
总之。
解决方案1-验证
- httpclient 反对身份验证URL。
- 标签 要解析页面响应,请存储页面所需的任何数据(如果有)。
- XOM 如果需要,XML解析器可以处理[1.2]的响应。
- 针对授权URL的HTTPCLIENT请求
解决方案2-接收Google的回复
- 启动 码头 服务器。
- 将响应URL设置为
localhost:****/whatever
在身份验证时。 - 接受码头中的回应。在命令行应用程序中检索响应。
免责声明:
这都是未经测试和高度理论的。可能有一种更好的方法来做到这一点,但是要避免仅打开Web浏览器并允许用户登录的工作是很多工作。
其他提示
简短的答案是您不能。您绝对不想尝试刮擦Google登录页面或类似的内容。
最好的选择是做类似轻巧的嵌入式码头服务器,用于接收Google Oauth Flow的回调。这正是为了 Oacurl, ,我们的Oauth意识到卷曲包装。该代码在 logincallbackserver.java.
不隶属于 StackOverflow