【发布时间】:2019-12-11 21:18:12
【问题描述】:
我已设置 Google Picker API 仅显示图像和 .pdf 文件,但我想设置此显示文件夹,我尝试了以下代码:
function loadPicker() {
gapi.load('auth', {'callback': onAuthApiLoad});
gapi.load('picker', {'callback': onPickerApiLoad});
}
function onAuthApiLoad() {
window.gapi.auth.authorize(
{
'client_id': clientId,
'scope': scope,
'immediate': false
},
handleAuthResult);
}
function onPickerApiLoad() {
pickerApiLoaded = true;
createPicker();
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
oauthToken = authResult.access_token;
createPicker();
}
}
function createPicker() {
if (pickerApiLoaded && oauthToken) {
//var view = new google.picker.View(google.picker.ViewId.DOCS); ... the mime type filter works only with DOCS
var view = new google.picker.DocsView(google.picker.ViewId.FOLDERS);
view.setMimeTypes("application/pdf,image/png,image/jpeg,image/jpg,application/vnd.ms-excel");
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.enableFeature(google.picker.Feature.SUPPORT_DRIVES)
.addView(view)
.setAppId(appId)
.setOAuthToken(oauthToken)
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
}
}
使用此代码,Picker 可以工作,问题是每个文件夹内都显示所有类型的文件(Google docs 文件、zip、js 等)
这些是使用的范围:
var scope = [
'https://www.googleapis.com/auth/drive.file',
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/drive.metadata',
'https://www.googleapis.com/auth/drive.readonly'
];
我可以在 Google Picker API 中显示文件夹,并且在其中只显示我在 setMimeTypes() 过滤器中设置的文件吗?
【问题讨论】:
-
你应该用语言标记这个
标签: javascript google-drive-api google-picker