Lingara 임베드하기
이 페이지는 영어에서 번역되었습니다. 두 내용이 다를 경우 영어 페이지가 정확합니다. 영어 페이지 읽기
Lingara는 여러분의 게임이나 웹사이트 안에서 동작할 수 있습니다. 여러분의 세계 속 캐릭터가 플레이어의 레벨에 맞춰 대화할 수 있고, 플레이어가 마친 연습은 Lingara 연습으로 인정됩니다. 임베드는 두 부분으로 이루어지며, 가장 먼저 정할 것은 어느 부분이 어디에서 실행되는지입니다.
누가 무엇을 보관하는가
여러분의 서버는 OAuth 클라이언트의 시크릿과 웹훅 서명 시크릿을 보관합니다. 둘 다 서버 밖으로 나가지 않습니다.
플레이어의 기기가 보관하는 것은 하나뿐입니다. lgr_et_로 시작하는 임베드 토큰입니다. 게임 바이너리나 웹 페이지에 담아 배포하는 것은 모두 공개되므로, 기기는 클라이언트 시크릿, 웹훅 시크릿, 여러분 클라이언트 자체의 액세스 토큰을 절대 보관하지 않습니다. 임베드 토큰은 한 명의 플레이어만을 위해 동작하고, 몇 시간이 아니라 몇 분 동안 유효하며, 여러분의 서버가 부여한 스코프만 가집니다.
플레이어에게는 Lingara 계정이 필요하지 않습니다. 여러분의 서버가 한 플레이어를 위해 처음 발급한 토큰이 그 플레이어의 게스트 학습자를 만들고, 이후의 모든 토큰은 같은 학습자에게 연결됩니다. 이미 Lingara 계정이 있는 플레이어는 그 계정을 가져올 수 있습니다. 여러분의 서버가 둘을 연결하는 방법은 서버 키트 페이지에서 설명합니다.
토큰이 플레이어에게 전달되는 방식
- 게임이나 페이지 안의 플레이어 키트는 토큰이 필요하면 토큰 소스를 통해 여러분의 서버에 요청합니다.
- 여러분의 서버는 그 플레이어에 대한 자체 세션을 확인하고, 서버 키트로 그 플레이어의 토큰을 발급합니다.
- 여러분의 서버는 토큰과 그 만료 시각이라는 두 필드로 토큰을 돌려줍니다. 자체 세션을 통해 전달하며, URL에 담는 일은 절대 없습니다.
- 플레이어 키트는 만료가 가까워질 때까지 토큰을 사용하고, 그런 다음 여러분의 서버에 다시 요청합니다. Lingara는 토큰을 갱신하지 않습니다.
player's device your server Lingara
─────────────── ─────────── ───────
player kit ── needs a token ──▶ your token route
server kit ── mint ─────────▶ token for one player
player kit ◀── token, expiry ── your token route ◀──────────
player kit ── API calls with the token ─────────────────────▶
웹사이트용 토큰은 하나의 오리진, 즉 페이지 자체의 스킴, 호스트, 포트에 묶입니다. 서버 키트 페이지에서 설명하듯이, 위젯이 실행되는 모든 오리진을 그 오리진용 토큰을 발급하기 전에 등록하세요. 게임용 토큰에는 오리진이 없습니다.
토큰이 할 수 있는 일
여러분의 서버는 토큰을 발급할 때 다음 다섯 가지 중에서 각 토큰의 스코프를 고릅니다: events:read, events:write, lesson_plans:read, lesson_plans:write, embed:play. 토큰은 여러분의 클라이언트가 이미 가진 스코프만 가질 수 있습니다. embed:play가 있으면 플레이어가 여러분의 캐릭터와 대화하고 마친 연습을 보고할 수 있습니다.
누가 비용을 내는가
토큰을 발급할 수 있는 것은 사용량 기반 결제 요금제의 클라이언트뿐입니다. 플레이어가 토큰으로 하는 모든 일은 여러분 클라이언트의 사용량으로 집계되어, 플레이어가 아닌 여러분에게 청구됩니다.
플레이어 삭제
플레이어가 여러분의 게임에서 계정을 삭제하면, 여러분의 서버도 Lingara에서 그 플레이어를 삭제합니다. 이렇게 하면 그 플레이어의 학습자와 Lingara가 그 플레이어에 대해 보관하는 모든 것이 삭제되고, 그 플레이어가 가진 모든 토큰이 취소됩니다.
필요한 키트
모든 통합에는 두 가지 키트가 쓰입니다. 여러분의 서버에 두는 서버 키트와, 플레이어가 플레이하는 곳에 두는 플레이어 키트입니다.
| 만드는 것 | 여러분의 서버 | 플레이어가 플레이하는 곳 |
|---|---|---|
| Bevy 게임 | 서버 키트 | Bevy |
| Unity 게임 | 서버 키트 | Unity |
| Godot 게임 | 서버 키트 | Godot |
| Unreal 게임 | 서버 키트 | Unreal |
| JVM 또는 Android 게임 | 서버 키트 | JVM 및 Android |
| 웹사이트 | 서버 키트 | 웹사이트 위젯 |
이어서 모든 키트에서 똑같이 동작하는 NPC 대화와 연습 결과를 읽어 보세요.
시작하기
- 서버 키트
여러분의 서버에서 플레이어를 위한 토큰을 발급하고, 그들의 이벤트를 라우팅하고, 플레이어를 삭제합니다.
실행 환경
- Bevy
Bevy 게임에 Lingara 플러그인을 추가하고, 토큰 요청에 응답하고, 이벤트를 Message로 읽습니다.
- Unity
NuGetForUnity로 Lingara.Embed를 설치하고, 서버에서 토큰을 받고, Update에서 이벤트를 비웁니다.
- Godot
Godot 4 게임에서 GDScript 또는 C#으로, 여러분 자체의 서버에서 받은 토큰으로 Lingara를 사용합니다.
- Unreal
플레이어 코어의 C 인터페이스 위에 만든 Unreal Engine 5용 Lingara 플러그인.
- JVM 및 Android
데스크톱과 Android에서 쓰는 Kotlin 플레이어 키트와 그 Java 파사드, libGDX를 실제 사례로 다룹니다.
- 웹사이트 위젯
페이지에 lingara-embed 요소를 마운트하고, 여러분 자체의 서버에서 토큰을 제공합니다.