要阅读Google Buzz活动,请authorization token is required。 Web应用程序将重定向到Googles登录页面,用户登录该页面并将令牌返回给Web应用程序。
但我有一个没有UI的本地Java应用程序(如脚本)。此应用程序知道用户名和密码。如何使用此用户名和密码获取授权令牌,而不显示Google登录页面?
答案 0 :(得分:2)
这可能是一个坏主意,但您可以使用像HttpClient这样的HTTP库来向用户提出相同的请求。您需要使用标题查看实用程序来确定需要访问的URL以及需要使用的标头,但可以自动执行此操作。如果谷歌改变了他们的页面布局,id
,class
es或整个页面结构,那么您的解析代码就会中断。
此外,您还需要能够从服务器捕获返回响应,这将涉及在某个Web端点接收响应。这可以通过下面概述的解决方案2来解决。
总结。
解决方案1 - 验证
解决方案2 - 接收来自Google的响应
localhost:****/whatever
。 这都是未经测试和高度理论化的。可能有更好的方法来做到这一点,但是要避免打开网络浏览器并让用户登录是很多工作。
答案 1 :(得分:2)
简短的回答是,你不能。您绝对不想尝试抓取Google登录页面或其他类似内容。
您最好的选择是使用轻量级嵌入式Jetty服务器,用于接收来自Google OAuth流程的回调。这正是我们的OAuth感知卷曲包装器OACurl所做的。该代码位于LoginCallbackServer.java。