2012-06-12 24 views
18

Tốt pic bởi Tim Rosenberg cho thấy chính xác cách thức OAUTH2 công việc của:FusionTables bảng riêng với OAUTH2

enter image description here

tôi là loại một lười biếng để thậm chí bắt đầu tìm kiếm về vấn đề này 2filestest vì vậy tôi đã tìm kiếm cho easyest cách để

1.get thẻ

2.access với thẻ

với sự giúp đỡ của gwt-oauth2

đặt nó vào đầu index.php: <script type="text/javascript" src="gwt-oauth2.js"></script>

và điều này trong cơ thể

<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,

Bây giờ bạn có thể nhìn thấy kết nối và chuyển hướng đến oauthWindow.html trong cửa sổ mới không có lỗi. Tham số GET hiện đang hiển thị cho bạn access_tokentoken_typeexpires_in. Kiểm tra access_token HERE

Như bạn thấy access_token làm việc tuyệt vời NHƯNG

gì bạn vẫn không nhận được là cảnh báo đầu tiên từ đó:

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); 
}); 

cảnh báo thứ hai hoạt động tốt và khi bạn cố gắng Auth. một lần nữa nếu oauthWindow.html vẫn mở nó cho bạn thấy một cảnh báo lỗi (vì vậy nó làm việc!) Bây giờ chúng ta hãy thêm mã ít để 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!

Bây giờ, nếu bạn muốn làm việc với các bảng riêng, tất cả những gì bạn cần là thêm access_token vào url.

Cảm ơn vì đã cho tôi lý do để tự trả lời!

+0

Cảm ơn bạn ạ. Cảm ơn bạn rất nhiều. – efwjames

+6

tại sao bạn xóa câu trả lời? Bạn nên hủy xóa nó và sau đó nhấp vào nút chấp nhận. Điều đó sẽ giúp người dùng tìm kiếm giải pháp tương tự. –

+0

@Joseph Marikle sai lầm của tôi. giải quyết. – qpaycm

Trả lời

1

Đặt này vào oauthWindow.html tập tin

<!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> 
Các vấn đề liên quan