我们有以下情况:
我们已遵循开发人员API指南中指出的所有步骤,包括设置授权令牌。这是我们的createPicker函数:
function createPicker() {
if (pickerApiLoaded && oauthToken) {
new google.picker.PickerBuilder()
.addView(google.picker.ViewId.DOCS)
.setSelectableMimeTypes(selectableMimes)
**.setOAuthToken(oauthToken)**
.setCallback(pickerCallback)
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.build()
.setVisible(true);
}
}
这就是我们获取oauthToken值的方式:
gapi.auth.authorize({
client_id: clientId,
scope: scope,
immediate: false,
}, function(authResult) {
if (authResult && !authResult.error) {
**oauthToken = gapi.auth.getToken().access_token;**
createPicker();
}
});
在调试时,我们已经确认,如果用户选择帐户A,我们会获得一个oAuthToken,如果用户选择帐户B,我们会得到另一个。因此,我们正在为每个帐户发送不同的令牌,因为它应该是。
在选择帐户B(为帐户B生成令牌)后,用户为何会查看帐户A上的文件?知道我们遗失或做错了什么?
答案 0 :(得分:0)
默认情况下,选择器将显示该浏览器中曾访问过的任何公共文件。这是一种奇怪的行为,并且很难让选择器完全按照你的意愿行事。
尝试使用功能Feature.MINE_ONLY
.enableFeature(google.picker.Feature.MINE_ONLY)
https://developers.google.com/picker/docs/reference#Feature
这将“仅显示用户在显示Google云端硬盘中的内容时所拥有的文档。”