1
下面不彈出一個窗口,是簡單地請求授權訪問用戶的電子表格一個javascript:gapi.auth.authorize()即日:假授權
var CLIENT_ID = '********';
var SCOPES = [
'https://www.googleapis.com/auth/spreadsheets'
];
function auth() {
gapi.auth.authorize({
client_id: CLIENT_ID,
immediate: true,
scope: SCOPES
}, function(result) {
console.log('authorize(immediate = true)');
if (result && !result.error) {
console.log('authorize [OK]');
} else {
console.log('authorize [FAILED]');
gapi.auth.authorize({
client_id: CLIENT_ID,
immediate: false,
scope: SCOPES
}, function(result) {
console.log('authorize(immediate = false)');
if (result && !result.error) {
console.log('authorize [OK]');
} else {
console.log('authorize [FAILED]');
}
});
}
});
}
我相信它應該做兩兩件事:
- 彈出一個窗口登錄,除非用戶已經登錄。
- 彈出一個窗口,要求授權訪問用戶的電子表格,除非授權已被前面已經批准。授權後,應用程序應列在Connected apps & sites下,不會再顯示帶授權的彈出窗口。
我使用兩個不同的Google帳戶測試此腳本。一個帳戶按預期工作,我得到的控制檯輸出如下:
auth.html:17 authorize(immediate = true)
auth.html:21 authorize [FAILED]
auth.html:27 authorize(immediate = false)
auth.html:29 authorize [OK]
使用其他帳戶授權彈出窗口不顯示和授權總是被授予如果我按「允許」或應用程序是下上市連接的應用程序&網站,但它不存在。控制檯輸出完全相同。
我一直在使用兩個瀏覽器完成這些測試:
- 版本51.0.2704.79建立在8.4,在Debian 8.5(64位)
- 的Firefox ESR 45.2.0,運行在Debian 8.5(運行64位)
所以,基本上我有以下問題:
- 是我關於彈出窗口科爾預期或使用immediate:true或immediate:false來調用gapi.auth.authorize()後面的想法是不同的?
- 這種「行爲不端」的原因是什麼?是否有任何「神聖的地方」的應用程序被列爲某些範圍的授權,而同一應用程序未顯示在下連接的應用程序&網站?
注:CLIENT_ID在谷歌API控制檯下的OAuth 2.0客戶端ID上市,型號爲Web應用程序和業主完全不涉及上述兩種不同的帳戶。
謝謝。
你可以分享應用程序腳本嗎? –
@RaghvendraKumar:其實,我已經簡單了:問題根本就沒有調用任何應用程序腳本,我只是調用gapi.auth.authorize()來請求電子表格權限,稍後通過調用一些應用程序腳本來使用它,但那會在解決上述問題之後完成。謝謝。 –