我在桌面上构建了java应用程序,允许将视频分享到youtube到特定的google帐户。 我使用了示例中的建议代码来上传视频: https://developers.google.com/youtube/v3/code_samples/java#upload_a_video
使用用户的json标记。 但是,当我尝试上传时,会打开谷歌的网页,并要求我登录并批准我的用户上传视频。
有没有办法跳过这个级别并从java代码中执行此操作? 我不想让用户登录到他的谷歌帐户的网页,只使用我用java制作的GUI。
答案 0 :(得分:4)
您可以复制课程
AuthorizationCodeInstalledApp
并覆盖方法
浏览(字符串网址)
你需要意识到,以编程方式转到url,就像这样(我使用htmlunit):
public void browse(String url) throws IOException {
WebClient webClient = initWebClient();
HtmlPage htmlPage = webClient.getPage(url);
//first you need login with your email and password
final HtmlTextInput login = (HtmlTextInput) htmlPage.getByXPath("//input[@type='email']").get(0);
final HtmlPasswordInput pass = (HtmlPasswordInput) htmlPage.getByXPath("//input[@type='password']").get(0);
HtmlSubmitInput button = (HtmlSubmitInput) htmlPage.getByXPath("//input[@type='submit']").get(0);
//set input login and passwd
login.setText(this.login);
pass.setText(this.passwd);
//press submit button
button.click();
//next need select account
htmlPage = webClient.getPage(url);
DomNodeList<HtmlElement> list = htmlPage.getElementById("account-list").getElementsByTagName("li");
String account = list.get(0).getElementsByTagName("a").get(0).getAttribute("href");
System.out.println(account);
htmlPage = webClient.getPage(account);
//and click submit button for approve
System.out.println("Wait 10sec.");
webClient.waitForBackgroundJavaScript(10000);
HtmlButton submitInput = (HtmlButton) htmlPage.getElementById("submit_approve_access");
submitInput.click();
}
这对我很好。