Próbuję zaimplementować niejawny grant OAuth 2.0 z aplikacji klienckiej java desktop przy użyciu interfejsu REST API usługi SkyDrive. Używam następujący kod:Pobieranie znacznika dostępu OAuth 2.0 (niejawny grant) z klienta java Desktop przy użyciu interfejsu REST API usługi SkyDrive.
Desktop.getDesktop().browse(new URL(st.toString()).toURI());
JOptionPane.showMessageDialog(null, "Press ok to continue once you have authenticated.");
mój kod otwiera przeglądarkę internetową i poprosić użytkownikom signin a następnie SkyDrive wysyła token dostępu do adresu URL przeglądarki w następującej formie:
https://login.live.com/oauth20_desktop.srf?lc=1033#access_token=EwAwAq1DBAAUlbRW.....
Co chcę zrobić jest odczytywanie tego tokenu dostępu z mojego programu java. Próbowałem czytać httpconnection z konsoli:
HttpURLConnection con = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
while(reader.readLine()!=null){
System.out.println(reader.readLine());
ale wydaje się, że java HttpURLConnection nie obsługuje javascript odpowiedź. Odpowiada:
<html dir="..... Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked......<body onload="evt_LoginHostMobile_onload(event);">
Czy istnieje sposób na odzyskanie tokena dostępu bezpośrednio z java?