Проблема "Чтобы выбрать элемент, пожалуйста, войдите в систему", возникающая случайным образом при использовании интерфейса Google Drive Picker

Я использую 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);
      });
  }

Я ожидаю увидеть список папок после авторизации.

Обновление Добавление области действия Google Drive несколько исправило проблему, но проблема с повторной авторизацией сохраняется.

0 ответов

Другие вопросы по тегам