4

我正在使用 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);
      });
  }

我希望在授权后看到文件夹列表。 在此处输入图像描述

在此处输入图像描述

更新 添加谷歌驱动器范围在一定程度上解决了这个问题,但立即重新授权问题仍然存在。

4

0 回答 0