Обновите прикрепленные файлы Link до дополнительных файлов Класса.

Один из способов, с помощью которого учителя добавляют сторонний контент в Класс, — это вставить ссылку в виде вложения на странице создания задания. Чтобы использовать то, с чем учителя уже знакомы, теперь вы можете настроить свое дополнение, чтобы позволить учителям обновлять вложение «Ссылка» на вложение «Дополнение» .

Обзор

Если вы настроите надстройку с этой возможностью, учителям будет предложено обновить ссылку на вложение надстройки, когда они вставят вложение «Ссылка» на страницу создания задания. Учителям предлагается сделать это только в том случае, если у них уже установлено дополнение.

Как только учитель соглашается обновить ссылку на дополнительный вложение, запускается iframe Link Upgrade со следующими параметрами запроса:

  • courseId
  • itemId
  • itemType
  • addOnToken
  • urlToUpgrade
  • login_hint (только если пользователь уже авторизовал ваше приложение)

Первые четыре параметра запроса отражают параметры запроса, запущенные в iframe обнаружения вложений . Параметр запроса urlToUpgrade является новым и может помочь вам оценить, как следует создавать вложение надстройки. Затем вы можете использовать другие параметры запроса, чтобы проверить, вошел ли пользователь в систему, и вызвать метод CreateAddOnAttachment для courseWork , courseWorkMaterials или announcements на основе значения itemType . В iframe вы можете отобразить экран загрузки, чтобы указать учителю, что создается дополнительное вложение.

После создания дополнительного вложения iframe закрывается, и учитель может просмотреть вложение в задании, как обычно.

Детали технической реализации

В этом разделе освещены некоторые важные технические подробности этой функции.

Прочтите параметр запроса urlToUpgrade

Параметр запроса urlToUpgrade представляет собой URI, закодированный при передаче в iframe обновления ссылки. Вам необходимо декодировать URL-адрес, чтобы получить его в исходном виде. Например, если вы используете JavaScript, вы можете использовать для этого функцию decodeURIComponent() .

Чтобы обеспечить оптимальное взаимодействие с пользователем этой функции, отправьте сообщение postMessage после успешного создания дополнительного вложения. Это закроет iframe. Дополнительные сведения см. на странице сведений о реализации iframe .

Детали конфигурации

Для интеграции этой функции в надстройку необходимы следующие конфигурации:

  • URL-адрес iframe для обновления ссылки : это URL-адрес, который открывается в iframe, когда учитель соглашается на обновление.

  • Шаблоны URL-адресов, которые Класс должен обнаружить и попытаться обновить . Шаблоны URL-адресов могут состоять из хоста и нескольких префиксов пути.

    • Вы можете предоставить несколько шаблонов URL-адресов.
    • Если вы не указали префиксы пути, любой URL-адрес, соответствующий хосту, можно обновить.
    • Обновить можно только URL-адреса со схемой https .
    • Шаблоны URL-адресов не должны содержать localhost .
    • Префиксы пути не должны содержать параметры запроса или фрагменты URL.
    • В настоящее время префиксы путей могут поддерживать подстановочные знаки, но хосты не могут:
      • example.com — допустимый хост, а /foo и /bar/*/baz — допустимые префиксы пути.
      • example.*.host.com не является допустимым хостом.
    • Подстановочный знак между компонентами префикса пути соответствует только одному компоненту и не соответствует нескольким компонентам, разделенным косой чертой. Рассмотрим шаблон URL-адреса с хостом example.com и префиксом пути /bar/*/baz :
      • https://example.com/bar/123/baz соответствует шаблону URL.
      • https://example.com/bar/123/baz/456/789 является допустимым соответствием шаблону URL-адреса.
      • https://example.com/bar/123/456/baz не соответствует шаблону URL-адреса, поскольку подстановочный знак в префиксе пути не соответствует /123/456/ .

Процесс разработки

Отправьте URL-адрес Link Upgrade iframe и шаблоны URL-адресов для вашего тестового или рабочего дополнения по электронной почте класс-линк-апгрейд-external@google.com .

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

Вы получите ответ на свое электронное письмо, когда конфигурации будут включены. Обратите внимание, что эта функция не поддерживает шаблоны URL-адресов, использующие localhost .

Отформатируйте электронное письмо, включив в него следующее:

Google Cloud Project number: GCP_PROJECT_NUMBER

Link Upgrade iframe URL: LINK_UPGRADE_IFRAME_URL

URL Patterns:
-   Host:HOST_1
-   Path prefixes:
  -   PATH_PREFIX_1
  -   PATH_PREFIX_2

-   Host:HOST_2
-   Path prefixes:
  -   PATH_PREFIX_3
  -   PATH_PREFIX_4

// add more hosts and path prefixes as needed

Замените следующее:

  • GCP_PROJECT_NUMBER : номер проекта Google Cloud, с которым связано дополнение.
  • LINK_UPGRADE_IFRAME_URL : URL-адрес, который должен открываться в iframe обновления ссылки.
  • HOST_1 : хост, который должен обнаружить Класс. Поддерживается только схема https .
  • PATH_PREFIX_1 и PATH_PREFIX_2 : префиксы путей, связанные с HOST_1 , которые Класс должен обнаружить и попытаться обновить.
  • HOST_2 : хост, который должен обнаружить Класс. Поддерживается только схема https .
  • PATH_PREFIX_3 и PATH_PREFIX_4 : префиксы путей, связанные с HOST_2 , которые Класс должен обнаружить и попытаться обновить.

Ниже приведены предложения, которые следует учитывать при реализации этой функции.

Избегайте дополнительной работы для учителей

Мы настоятельно рекомендуем вам использовать iframe для облегчения входа в систему, если это необходимо, или для отображения индикатора загрузки. Для обеспечения наилучшего пользовательского опыта преподавателю не следует запрашивать какую-либо дополнительную информацию после того, как он согласился обновить вставленную ссылку до дополнительного вложения. Однако, если это невозможно для вашего дополнения, вы можете использовать iframe Link Upgrade для сбора дополнительной информации, которая вам нужна. iframe также можно использовать для информирования учителя, если обновление ссылки невозможно или произошла ошибка.

Включите удобные для пользователя сообщения об ошибках доступа.

Если учителя вставят и обновят ссылку, к которой у них нет доступа, отобразите удобное для пользователя сообщение об ошибке в iframe, чтобы учителя знали о проблеме. iframe также можно использовать для предоставления учителю соответствующих разрешений на доступ к контенту.