🕸️URL 연결 외부자료 개발 가이드

이 페이지에서는 외부학습자료 설정 방법 및 개발 방법을 설명합니다.

URL 연결 외부자료 설정

수업에서 자료 추가 버튼을 클릭 후 URL 연결 외부자료 버튼을 클릭합니다.

  • 자료 형식: 학습자료로 사용을 선택합니다.

  • 외부 자료 URL: 개발중인 자료의 접속가능한 URL을 입력합니다. 이 URL은 외부에서 접근가능해야 합니다.

  • 유저 정보 전송: UID 전송으로 변경합니다.

위와 같이 선택하고 자료를 로드하면 iframe 을 통해 외부 자료 URL 에 입력된 주소가 로드됩니다. 이 때, URL은 다음과 같이 설정됩니다.

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

채점 API를 이용한 점수 부여 방법

유저가 접속하며 query parameter로 함께 넘겨준 extToken을 decode 하면 아래와 같은 payload가 나오게 됩니다.

{
  "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에 아래와 같이 요청을 보내면, 채점이 완료됩니다.

  • Method: POST

  • Url: {progress_url}

  • Body

    {
      "score": 100
    }
  • Python code 예시

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

튜터링 모드 여부 확인 방법

유저가 접속하며 query parameter로 함께 넘겨준 extToken을 decode 하면 아래와 같은 payload가 나오게 됩니다.

{
  "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
}

해당 payload에서 tutor_user_id 가 존재하면 튜터링 모드, 존재하지 않으면 학생 모드입니다.

Last updated