🕸️URL 連結外部資料開發指南

このページでは、外部学習資料の設定方法と開発方法について説明します。

URLリンク外部資料の設定

授業で資料を追加ボタンをクリックした後、URLリンク外部資料ボタンをクリックします。

  • 資料の形式: 学習資料として使用を選択します。

  • 外部資料のURL: 開発中の資料のアクセス可能なURLを入力します。このURLは外部からアクセス可能である必要があります。

  • ユーザ情報の送信: UIDの送信に変更します。

上記のように選択し、資料をロードすると、外部資料のURLに入力されたアドレスがiframeを介してロードされます。この時、URLは以下のように設定されます。

https://example.com?extToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…

採点APIを利用した採点方法

ユーザがアクセスする際にクエリパラメータとして一緒に渡されるextTokenをデコードすると、以下のようなペイロードが表示されます。

{
  "user_id": 917678,
  "uid": null,
  "progress_url": "https://api-esp-proxy.elice.io/default/progress/external?token=eyJhbGciOiJIUz...",
  "token_nonce": null,
  "ts": 1696408550682,
  "iss": "elice-api",
  "tutor_user_id": 111  # チューターモードの場合のみこの値が存在します
}

該当する値の中で、progress_urlに以下のようなリクエストを送れば、採点が完了します。

  • メソッド: POST

  • URL: {progress_url}

  • リクエストボディ

    {
      "score": 100
    }
  • Pythonコードの例

    progress_url = decoded_token["progress_url"]
    
    response = requests.post(
        progress_url, 
        json={"score": reqeust.score},
    )

チューターモードの有無の確認方法

ユーザがアクセスする際にクエリパラメータとして一緒に渡されるextTokenをデコードすると、以下のようなペイロードが表示されます。

{
  "user_id": 917678,
  "uid": null,
  "progress_url": "<https://api-esp-proxy.elice.io/default/progress/external?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOm51bGwsInVzZXJfaWQiOjEzMTg5NDA0LCJvcmdhbml6YXRpb25faWQiOjM0ODQsImNvdXJzZV9pZCI6Nzg4MzksImxlY3R1cmVfcGFnZV9pZCI6NzE2NjM2N30.ULsamRseUwE-6gFI5YwQscn4RwAXMBzpWggKKlv1-1o>",
  "token_nonce": null,
  "ts": 1696408550682,
  "iss": "elice-api",
  "tutor_user_id": 48374
}

該当のペイロードから、tutor_user_idが存在すればチューターモードであり、存在しなければ学生モードです。

Last updated