Проблема с добавлением файлов контролируемыми ссылками через Google Drive

Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -
Number of replies: 9

Здравствуйте! При настройке репозитория Google Drive в системе Moodle, происходит следующая ошибка: при загрузке файла как контролируемой ссылкой файл загружается в визуальной части, но после нажатия кнопки "Сохранить" высвечивается следующая ошибка (для демонстрации включен режим отображения всех ошибок):


Настройка Oauth2 аутентификации от Google, настройка файлового хранилища Google Drive происходили по следующим инструкциям:

  1. https://docs.moodle.org/38/en/OAuth_2_Google_service
  2. https://docs.moodle.org/38/en/Google_Drive_repository

Если смотреть лог в Google Console API, то видно, что метод "drive.files.update" вызывается со 100% ошибкой:


Я сбрасывал настройки Oauth2 авторизации, а также хранилища Google Drive в Moodle, но это не помогло. Подключенная системная учетная запись такая же, в которой были созданы Oauth2 данные.

Прошу вас, помочь. Если нужны ещё какие-то данные, я предоставлю. Заранее огромное спасибо!



Спецификация сервера:
  • Операционная система: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-96-generic x86_64);
  • БД: MySQL 5.7.29-0ubuntu0.18.04.1 (Ubuntu);
  • Хостинг: Mail.ru Cloud Solution (VPS);
  • CPU: Intel Core Processor (Skylake, IBRS) 2 GHz (1 Core);
  • RAM: 2048 MB;
  • Версия Moodle: 3.8.2 (Build: 20200309).

Sum of ratings: -
In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Yevgenii Losonogov -
Ошибка сама говорит о себе, значение адреса гиперссылки не доступно.
Вам необходимо проверить настройки аккаунта Google Drive.

Ещё, проверьте статус (Включено и видимо)
Администрирование --> Плагины --> Хранилища файлов --> Управление хранилищами файлов --> Google Drive
In reply to Yevgenii Losonogov

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -

Здравствуйте! Не совсем понимаю какие именно нужно настройки смотреть: настройки аккаунта Google или же настройки доступа в Google Drive API...


Модуль Google Drive включен и отображен:


In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -
Кстати! Возможен ли такой вариант, что система сохранила предыдущие Oauth2 настройки Google? Изначально были подключены Oauth2 личные, но я переподключил данные на аккаунт в G Suite. Данные для API сгенерировал также с нового аккаунта с G Suite.

Если же система сохранила это, то как можно сбросить эти настройки?
In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Vadim Tabunshchik -
Picture of Developers
С личными данными тоже не работало?
Вся конфигурация сохраняется в базе данных. Можете там проверить.
ЗЫ: в окне запроса доступа OAuth есть секция «Области действия для API Google», в ней числится ../auth/drive.file?
In reply to Vadim Tabunshchik

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -
Система работала с личной учётной записью, но когда переподключил все на рабочий адрес — все перестало работать.

В окне запроса доступа OAuth2 был подключен только "..auth/drive". Подключил "..auth/drive.file", но проблема сохранилась.

Можно узнать, в какой именно таблице хранится конфигурация? Хотя, я просматривал таблицы "mdl_oauth2_system_account" и "mdl_ouath2_issuer", там записи актуальные.
In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -

Так же заметил ещё одну проблему. Теперь при проверке задания, если поставить оценку пользователю с адресом электронной почты, которая заканчивается на @gmail.com, то система выводит следующее сообщение, оценка не сохраняется:


В режиме "Просмотр всех ответов" при "быстрой оценке" оценка выставляется.

In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -
Решил проблему следующим образом: отключил конвертер файлов Google Docs и подключил конвертер Unoconv.
In reply to Егор Репьев

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -

Также, таблица "mdl_repository_instances"  имеет странную структуру:


Может, стоит удалить строки, где нет данных в ячейке "name"?

In reply to Vadim Tabunshchik

Re: Проблема с добавлением файлов контролируемыми ссылками через Google Drive

by Егор Репьев -

Ещё одна проблема... некоторые задания невозможно проверить. То есть, если зайти в режим "Просмотр всех ответов", то загружается страница полностью без стилей (тег "head" пустой), но если пролистать страницу, можно увидеть следующую ошибку:


Возможно, что некоторые студенты загружали файлы через Google Диск, когда был подключен личный адрес. Теперь, как я понимаю, доступ к файлам пропал, система не может их загрузить. Что можно сделать в этой систуации?

UPD: Возможен ли фикс, если я очищу таблицу "mdl_files_reference"?


UPD 2: Решил проблему. Записи, которые хранятся в таблице "mdl_files_reference" нужно обновить, если вы меняете OAuth2 авторизацию. Ключ репозитория не обновляется, его нужно обновить вручную. Для этого нужно знать id репозитория, который был предыдущий. Если у вас был подключен только один внешний репозиторий, то значения, хранящиеся в "mdl_files_reference"."repositoryid" и есть идентификатор репозитория. Нужно зайти в таблицу "mdl_repository" и узнать новый идентификатор внешнего репозитория. Как узнаете, можете обновить через SQL-запрос. Например, значение первичного идентификатора было 8, а стало 9, нужно выполнить следующий SQL-запрос:

UPDATE `mdl_files_reference` SET `repositoryid`= 9 WHERE `repositoryid` = 9;