將連結連結至 Classroom 外掛程式附件

老師可以透過在作業建立頁面中,將連結貼上為連結附件,將第三方內容新增至 Classroom。為讓教師能運用熟悉的功能,您現在可以設定外掛程式,讓教師將連結附件升級為外掛程式附件

總覽

如果您將這項功能納入外掛程式設定,當老師在作業建立頁面中貼上連結附件時,系統就會提示他們將連結升級為外掛程式附件。只有已安裝外掛程式的老師,才會收到安裝提示。

老師同意將連結升級為外掛程式附件後,系統會啟動連結升級 iframe,並傳送以下查詢參數:

  • courseId
  • itemId
  • itemType
  • addOnToken
  • urlToUpgrade
  • login_hint (僅限使用者已授權給您的應用程式)

前四個查詢參數會反映附件探索 iframe 上啟動的查詢參數。urlToUpgrade 查詢參數是新功能,可協助您評估如何建立外掛程式附件。接著,您可以使用其他查詢參數檢查使用者是否已登入,並根據 itemType 值呼叫 courseWorkcourseWorkMaterialsannouncementsCreateAddOnAttachment 方法。您可以在 iframe 中顯示載入畫面,向老師指出附件外掛程式正在建立中。

建立外掛程式附件後,iframe 就會關閉,老師就能照常查看作業中的附件。

技術實作詳細資料

本節將說明這項功能的幾項重要技術細節。

讀取 urlToUpgrade 查詢參數

urlToUpgrade 查詢參數在傳遞至 Link Upgrade iframe 時會經過 URI 編碼。您必須解碼網址,才能取得原始網址。舉例來說,如果您使用 JavaScript,可以使用 decodeURIComponent() 函式執行這項操作。

為確保這項功能提供最佳使用者體驗,請在成功建立外掛程式附件後傳送 postMessage。這麼做會關閉 iframe。詳情請參閱 iframe 實作詳細資訊頁面

設定詳細資料

如要將這項功能整合至外掛程式,必須進行下列設定:

  • 連結升級 iframe 的網址:這是在老師同意升級時,在 iframe 中開啟的網址。

  • Classroom 應偵測並嘗試升級的網址模式:網址模式可包含主機和多個路徑前置字串。

    • 您可以提供多個網址模式。
    • 如果您未提供任何路徑前置字串,則任何與主機相符的網址都可以升級。
    • 只有採用 https 配置的網址才能升級。
    • 網址模式不得包含 localhost
    • 路徑前置字串不得包含查詢參數或網址片段。
    • 路徑前置字元目前可支援萬用字元,但主機不支援:
      • example.com 是有效主機,/foo/bar/*/baz 則是有效路徑前置字串。
      • example.*.host.com 不是有效的主機。
    • 路徑前置字元元件之間的萬用字元只會比對單一元件,不會比對以斜線分隔的多個元件。請考慮含有主機 example.com 和路徑前置字元 /bar/*/baz 的網址模式:
      • https://example.com/bar/123/baz 是網址模式的有效比對項目。
      • https://example.com/bar/123/baz/456/789 是網址模式的有效比對項目。
      • https://example.com/bar/123/456/baz 與網址模式不符,因為路徑前置字串中的萬用字元與 /123/456/ 不符。

開發流程

請傳送 Link Upgrade iframe 網址和網址模式,以便測試或正式發布外掛程式,請傳送電子郵件至 [email protected]

您可以為任何代表 Classroom 外掛程式的 Google Cloud 專案提供設定。建議您先為附加元件提供私人瀏覽權限的設定,這樣您就能在示範網域中進行開發和測試,而不影響實際使用者。

啟用設定後,我們會回覆您的電子郵件。請注意,這項功能不支援使用 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:應在 Link Upgrade iframe 中開啟的網址。
  • HOST_1:Classroom 應偵測的主機。僅支援 https 配置。
  • PATH_PREFIX_1PATH_PREFIX_2:與 HOST_1 相關聯的路徑前置字串,Classroom 應偵測並嘗試升級。
  • HOST_2:Classroom 應偵測的主機。僅支援 https 配置。
  • PATH_PREFIX_3PATH_PREFIX_4:與 HOST_2 相關聯的路徑前置字串,Classroom 應偵測並嘗試升級。

以下是實作這項功能時的建議。

避免教師額外負擔工作

強烈建議您使用 iframe 來協助登入 (如有需要),或顯示載入指標。為了提供最佳使用者體驗,老師同意將貼上的連結升級為外掛程式附件後,系統不應再提示他們提供其他資訊。不過,如果無法在外掛程式中執行這項操作,您可以使用 Link Upgrade iframe 收集所需的其他資訊。如果無法升級連結或發生錯誤,iframe 也可用於通知老師。

加入使用者友善的存取錯誤訊息

如果老師貼上無法存取的連結並升級,請在 iframe 中顯示友善的錯誤訊息,讓老師瞭解問題。iframe 也可用於為老師提供存取內容的適當權限。