본문으로 건너뛰기

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

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

URL 연결 외부자료 설정

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

위와 같이 선택하고 자료를 로드하면 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 가 존재하면 튜터링 모드, 존재하지 않으면 학생 모드입니다.