以下是一个只需要授权访问用户电子表格的JavaScript:
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]');
}
});
}
});
}
我认为应该做两件事:
我正在使用两个不同的Google帐户测试此脚本。一个帐户按预期工作,我在控制台上获得以下输出:
auth.html:17 authorize(immediate = true)
auth.html:21 authorize [FAILED]
auth.html:27 authorize(immediate = false)
auth.html:29 authorize [OK]
使用另一个帐户,未显示授权弹出窗口,并且始终授予授权,如果我按下“允许”或该应用程序列在已连接的应用程序&网站,但它不在那里。控制台输出完全相同。
我使用两个浏览器完成了这些测试:
所以,基本上我有以下问题:
注意:CLIENT_ID列在 OAuth下的 Google API控制台中 2.0客户端ID ,类型为 Web应用程序,所有者与上述两者完全不同。
感谢。
答案 0 :(得分:1)
回答你的问题:
gapi.auth.authorize()
立即呼叫背后的想法:真实还是立即:假是不同的?
immediate:false
)触发'gapi.auth.authorize'时,流程如下:
- 显示具有权限授权的弹出窗口
- 当用户接受/拒绝时,弹出窗口关闭
- 而不是触发回调,TypeError出现在控制台中(无论用户是否授权应用程序处理请求的数据)
醇>
我希望有所帮助。