我正在使用 Google Drive Picker UI 来选择一个文件夹并按计划在该文件夹中创建或更新电子表格
有时它会按预期工作,但最近它显示一条名为“要选择项目,请登录”的消息。单击“登录”按钮时,会显示“您请求的功能当前不可用。请稍后再试。” 以前,在撤销访问权限后立即重新授权时会发生这种情况,但现在我要求使用额外的参数,例如文件夹的共享对象、创建日期、要在前端显示的文件夹名称。它工作了几天,但现在,上面提到的问题经常发生。
createPicker(oauthToken, authCode, authUser) {
const googleViewId = window.google.picker.ViewId.FOLDERS;
const docsView = new window.google.picker.DocsView(googleViewId)
.setIncludeFolders(true)
.setMimeTypes('application/vnd.google-apps.folder')
.setSelectFolderEnabled(true);
const picker = new window.google.picker.PickerBuilder()
.addView(docsView)
.setOAuthToken(oauthToken)
.setDeveloperKey(this.props.developerKey)
.setCallback(data => {
if (data.action === window.google.picker.Action.PICKED) {
this.fetchFolderDetails(data, authCode, authUser);
}
});
if (this.props.multiSelect) {
picker.enableFeature(window.google.picker.Feature.MULTISELECT_ENABLED);
}
picker.build().setVisible(true);
}
fetchFolderDetails(data, authCode, authUser) {
window.gapi.client
.init({
apiKey: this.props.developerKey
})
.then(() =>
window.gapi.client.request({
path: 'https://www.googleapis.com/drive/v2/files/' + data.docs[0].id,
params: {
fields: 'permissions, title, createdDate, shared'
}
})
)
.then(response => {
let googleDriveData = {
folderId: data.docs[0].id,
mimeType: data.docs[0].mimeType,
authCode,
authUser,
folderName: response.result.title,
permissions: response.result.permissions,
shared: response.result.shared,
createdTime: response.result.createdDate
};
this.props.onChange(googleDriveData);
});
}
更新 添加谷歌驱动器范围在一定程度上解决了这个问题,但立即重新授权问题仍然存在。