Learning Tools Interoperability(LTI)は、学習管理システムで サードパーティのインテグレーションを構築するためのオープン フレームワークです。Classroom アドオンとLTI ツールは同様のユーザー ジャーニーをサポートしていますが、2 つのフレームワークには直接的な互換性はありません。このガイドでは、2 種類のインテグレーション タイプを比較し、主な違いを説明します。また、LTI ツールを Classroom アドオンとして機能させるために、同様のユーザー ジャーニーを実現する方法についても説明します。
プラットフォームとツール間のインタラクション
LTI ツールと Classroom アドオンの主な違いは、情報の交換方法です。LTI ツールは通常、HTTP POST を使用して
ペイロードを LTI プラットフォームに送信しますが、Classroom アドオンは
Google Classroom REST API を使用してリソースを作成して取得します。
次の表に、Google Classroom で LTI ツールの主な動作を実現する方法をまとめます。
| 機能 | LTI | Classroom |
|---|---|---|
| 課題を作成する | Assignment &Grade Services | CourseWork リソースと AddOnAttachment リソースを作成する |
| 成績を投稿する | Assignment &Grade Services | CourseWork と AddOnAttachment の生徒の提出物を修正する |
| 起動ルート | ディープリンク | AddOnAttachment リソースで URI を指定する |
| コースの受講者リストを読み取る | Names &Role Provisioning Services | コース内の Student プロファイルと Teacher プロファイルを取得する |
LTI ツールを Classroom アドオンに適合させる
多くの LTI インタラクションには、Classroom アドオン フレームワークに類似するものがあります。以降のセクションでは、主なコンセプトと推奨される対応について説明します。
アプリケーションの構成
Google Classroom とのプログラムによるインタラクションには、Google Cloud プロジェクトが必要です。アプリケーション リストは同じ Cloud プロジェクトで構成します。これにより、Classroom アドオンがエンドユーザーにどのように表示されるかが決まります。アイコンを指定し、アプリの名前と説明を設定して、プロダクトに必要な OAuth スコープ権限を構成します。
リストからアドオン アプリケーションをインストールすることは、エンドユーザーが実行する必要がある唯一の構成手順であることがよくあります。これは、LTI ツールを有効にしてデプロイするのと同様です。エンドユーザーは登録操作を完了したり、構成の詳細を管理したりする必要はありませんが、管理者は Marketplace でアプリを許可し、サードパーティのデータアクセス権限を構成する必要がある場合があります。
推奨事項: Classroom アドオン用の Google Cloud プロジェクトを作成して構成する ガイドに沿って操作してください。最も重要なことは、Marketplace SDK でアドオン起動用の URL を添付ファイルの検出 URI として指定することです。この URL は、ユーザーを適切な 認証フローにルーティングする限り、既存の LTI ツールの起動ルートと同じにできます。
認証フロー
LTI は、クライアント アプリケーションと認証 サーバーが署名付き JWT を交換する 2 レッグフローを使用します。管理者がツールを構成すると同意が暗黙的に行われるため、ユーザーがツールにデータへのアクセス権を付与する必要はありません。
一方、Google の OAuth フローは 3 レッグフローで、エンドユーザー、 外部クライアント アプリケーション、認証サーバーが関与します。クライアントは、ユーザーの Google Classroom リソースへのアクセスを許可する明示的なユーザーの同意を得てトークンを受け取ります。
アドオン アプリケーションは、 同様の 2 レッグの署名付き JWT の動作をサービス アカウントを使用して実現できます。これらは、個々のユーザーではなくアプリケーションに属するアカウントであり、ユーザーの同意なしでアクションを実行できます。サービス アカウントを使用するには、管理者の構成と管理が必要です。サービス アカウントは悪用の可能性があるため、ドメイン全体の委任での使用は強く推奨されません。詳細については、Google Classroom インテグレーションでのドメイン全体の委任に関する ガイドをご覧ください。
推奨事項: ツールまたは アドオンに関連付けられた URL が受信リクエストを受け取った場合は、 Classroom アドオンのクエリ パラメータが存在するかどうかをリクエストで確認します。 存在する場合は、Google Identity SDK を使用してユーザーのアクセス認証情報を取得します。認証情報をユーザーのセッションに保存し、それを使用して Classroom API リクエストを行います。クエリ パラメータが存在しない場合は、HTTP リクエストを使用してプラットフォームの LTI エンドポイントとやり取りします。
Google Classroom でアドオン コンテンツを作成する
Classroom アドオンは、外部でホストされているページへの URL リンクという 1 種類のコンテンツをサポートしています。これらのリンクは AddOnAttachment リソースに含まれています。
このリソースは、ユーザーがアドオンを操作したときに開くウェブルートを定義します。
各 URL は特定のシナリオで開きます。詳細については、
iframe のガイドをご覧ください。これらの URL は、LTI リソース
リンクに似ています。
Classroom アドオンは、ファイル、画像、HTML フラグメントなどの他のコンテンツ タイプをサポートしていません。
推奨事項: ユーザーがプロダクトでコンテンツを選択したら、
OAuth 認証情報を取得して AddOnAttachments.create リクエストを行います。リクエストには、生徒ビュー、教師ビュー、採点ビュー(省略可)の URL を含む AddOnAttachment オブジェクトを含める必要があります。なお、お知らせ、課題、またはコース教材に添付ファイルを作成するための API エンドポイントは別々に用意されています。採点ビューを設定できるのは、課題に作成された添付ファイルのみです。これは、生徒の提出物を受け付ける Classroom ストリーム アイテムの唯一のタイプであるためです。
フレームワークの機能の比較
インテグレーションの配置
Classroom アドオンは、お知らせ、課題、コース教材に添付ファイル を作成します。これらは、Classroom UI のコースの [ストリーム] タブに表示されるアイテムです。
教師は、課題作成フローのピッカーでアドオンを選択して、アドオンの添付ファイルの作成を開始します。ユーザーに表示される各ビューの詳細については、iframe のガイドをご覧ください。
また、デベロッパーは、アドオンの添付ファイルを使用して課題をプログラムで作成することもできます。詳細については、Google Classroom の外部で添付ファイルを作成するガイドをご覧ください。
起動コンテキスト情報
Classroom は、アドオン ルートを開くときに、各 URL にいくつかの クエリ パラメータ を追加します。これらには、常にストリーム アイテムのタイプと、コースとストリーム アイテムの識別子が含まれます。iframe ビューによっては、添付ファイルまたは提出物の識別子、添付ファイルの作成を承認するトークン、リンクからアドオンの添付ファイルにアップグレードする URL など、他の情報が存在する場合があります。
Classroom は、デフォルトではユーザーや教育機関に関する情報を渡しません。ユーザーに関する情報は、ユーザー ID を含む Classroom API UserProfile リソースから取得できます。ユーザーがドメイン管理者である場合は、 Workspace Admin SDK から教育機関に関する情報を取得できます。
認証と認可
Classroom アドオンでは、ユーザー認証に Google でログイン を使用する必要があります。ログインすると、ユーザーはアプリケーションに権限を付与します OAuth 2.0 スコープを介して。アプリケーションでは、 使用可能な OAuth スコープを自由に組み合わせて使用できます。
アプリの検出と構成
ユーザーは、 Google Workspace Marketplace で Classroom アドオンを見つけてインストールします。ワンクリックでインストールすると、個々の教師がアドオン アプリケーションを使用できるようになります。 必要に応じて、管理者は組織部門またはドメイン内のすべての教師にアドオン アプリケーションをインストールできます。アプリケーションで作成された添付ファイルは、コース内のすべての生徒がアクセスできます。エンドユーザーは、個々の Classroom アドオンのトークン、キー、識別子を管理する必要はありません。
UX とプロダクト フロー
多くの場合、LTI ツールの既存のプロダクト フローは Classroom アドオンとして適切に機能します。LTI ツールと同様に、Classroom アドオンを使用すると、プラットフォーム上のコンテンツへのリンクを作成して管理できます。Classroom アドオンの添付ファイルは LTI ディープリンクに似ています。LTI ツールがホストされているコンテンツを指す URL を作成する場合、Classroom アドオンとして適切に機能します。
生徒の提出物を採点する
Classroom アドオンの添付ファイルは、Classroom の採点者ビューで表示して採点できます。生徒の提出物が必要なコンテンツを添付する場合は、講師が特定の生徒の提出物を表示して採点できる student_work_review_uri を指定します。これは、LTI とは異なります。LTI では、教師と生徒の両方に共通の target_link_uri のみが定義されます。Classroom アドオンの実装は
今後の LTI Submission Review Serviceに最も似ています。