2012-06-12 6 views
18

Gut pic von Tim Rosenberg, das zeigt, wie genau OAuth2 Arbeit:Fusion privater Tisch mit OAuth2

enter image description here

Ich bin ein bisschen ein faulen auch auf diesen 2files und test Suche zu starten, so suchte ich nach easyest Art und Weise zu

1.Get Token

2. Greifen Sie mit diesem Token

mit Hilfe von gwt-oauth2

steckte es in index.php Kopf: <script type="text/javascript" src="gwt-oauth2.js"></script>

und dies in Körper

<script type="text/javascript"> 
(function() { 
var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/auth"; 
var GOOGLE_CLIENT_ID = "CLIENT_ID"; 
//var PLUS_ME_SCOPE = "https://www.googleapis.com/auth/plus.me"; 
//var FusionTable_SCOPE = "https://www.googleapis.com/auth/fusiontables";  
var button = document.createElement("button"); 
button.innerText = "Authenticate with Google"; 
button.onclick = function() { 

var req = { 
    'authUrl' : GOOGLE_AUTH_URL, 
    'clientId' : GOOGLE_CLIENT_ID, 
    'scopes': ['https://www.googleapis.com/auth/plus.me', 
       'https://www.googleapis.com/auth/fusiontables' 
       ], 
}; 

oauth2.login(req, function(token) { 
    alert('Got an OAuth token:\n'+ token +'\n'+ 'Token expires in '+ oauth2.expiresIn(req) +' ms\n'); 
    }, function(error) { 
    alert("Error:\n" + error); 
    }); 
}; 

var dv = document.getElementById('admin-content'); 
dv.appendChild(button); 
var clearTokens = document.createElement('button'); 
clearTokens.innerText = 'Clear all tokens' 
clearTokens.onclick = oauth2.clearAllTokens; 
dv.appendChild(clearTokens); 
})(); 
</script> 

OK,

Jetzt können Sie sehen, Verbindung und Umleitung oauthWindow.html im neuen Fenster ohne Fehler. GET-Parameter zeigen jetzt access_tokentoken_typeexpires_in. Überprüfen Sie die access_token HERE

Wie Sie sehen access_token große Arbeits ABER

Was Sie noch nicht bekommen, ist erste Alarm aus, dass:

oauth2.login(req, function(token) { 
    alert('Got an OAuth token:\n' + token + '\n' 
    + 'Token expires in ' + oauth2.expiresIn(req) + ' ms\n'); 
}, function(error) { 
    alert("Error:\n" + error); 
}); 

Zweiter Alarm funktioniert gut und wenn Sie versuchen, Auth. noch einmal, wenn oauthWindow.html öffnen zeigt eine Fehleralarm (so ist es funktioniert!) Nun wollen wir diesen kleinen Code in den oauthWindow.html

<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript"> 
     if (window.opener && window.opener.oauth2 && window.opener.oauth2.__doLogin) { 
     window.opener.oauth2.__doLogin(location.hash); 
     } else { 
     document.body.innerText = "Your browser seems to be stopping this window from communicating with the main window."; 
     } 
    </script> 
    </head> 
    <body></body> 
</html> 

Perfect!

Jetzt, wenn Sie mit privaten Tabellen arbeiten möchten, ist alles, was Sie brauchen, ein Access_Token zu URL hinzufügen.

Danke, dass Sie mir den Grund gegeben haben, mir selbst zu antworten!

+0

Danke Sir. Vielen Dank. – efwjames

+6

Warum haben Sie die Antwort gelöscht? Sie sollten es wiederherstellen und dann auf die Schaltfläche "Akzeptieren" klicken. Das sollte Benutzern helfen, die nach einer ähnlichen Lösung suchen. –

+0

@Joseph Marikle mein Fehler. gelöst. – qpaycm

Antwort

1

Dieses in oauthWindow.html Datei

<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript"> 
     if (window.opener && window.opener.oauth2 && window.opener.oauth2.__doLogin) { 
     window.opener.oauth2.__doLogin(location.hash); 
     } else { 
     document.body.innerText = "Your browser seems to be stopping this window from communicating with the main window."; 
     } 
    </script> 
    </head> 
    <body></body> 
</html>