Vai al contenuto principale

Formato lezione aperta

L'Open Lesson Format è uno schema JSON standardizzato che consente ai fornitori di contenuto di terze parti di pubblicare curriculum per Lessons.church. Qualsiasi organizzazione che ospita un feed in questo formato può essere aggiunta come provider esterno, rendendo il loro contenuto navigabile e riproducibile insieme alla libreria integrata.

Come funziona

Un provider ospita due tipi di endpoint:

  1. Provider Tree -- Un singolo URL che restituisce il catalogo completo di programmi, studi, lezioni e sedi. Ogni sede include un URL di feed che punta al contenuto della lezione dettagliata.
  2. Venue Feed -- Un URL per sede, che restituisce il contenuto della lezione completo (sezioni, azioni e file multimediali).

Quando una chiesa aggiunge l'URL del tuo provider in Lessons.church, la piattaforma recupera il tuo albero per scoprire il contenuto disponibile, quindi recupera i feed delle sedi individuali su richiesta.

Provider Tree

Il tuo URL provider deve restituire un oggetto JSON con questa struttura:

{
"programs": [
{
"id": "program-1",
"name": "Gospel of Mark",
"slug": "gospel-of-mark",
"image": "https://example.com/images/mark.jpg",
"about": "A 12-week study through the Gospel of Mark.",
"studies": [
{
"id": "study-1",
"name": "The Beginning",
"slug": "the-beginning",
"image": "https://example.com/images/study1.jpg",
"lessons": [
{
"id": "lesson-1",
"name": "The Baptism of Jesus",
"slug": "baptism-of-jesus",
"title": "The Baptism of Jesus",
"image": "https://example.com/images/lesson1.jpg",
"description": "An introduction to Jesus' ministry.",
"venues": [
{
"id": "venue-1",
"name": "Kids",
"apiUrl": "https://example.com/feed/venues/venue-1"
},
{
"id": "venue-2",
"name": "Adults",
"apiUrl": "https://example.com/feed/venues/venue-2"
}
]
}
]
}
]
}
]
}

Campi dell'albero

CampoTipoDescrizione
programs[].idstringaIdentificatore univoco del programma
programs[].namestringaNome visualizzato
programs[].slugstringaNome URL-friendly
programs[].imagestringaURL immagine del programma (facoltativo)
programs[].aboutstringaDescrizione (facoltativo)
studies[].idstringaIdentificatore univoco dello studio
studies[].namestringaNome visualizzato
studies[].slugstringaNome URL-friendly
studies[].imagestringaURL immagine dello studio (facoltativo)
lessons[].idstringaIdentificatore univoco della lezione
lessons[].namestringaNome visualizzato
lessons[].slugstringaNome URL-friendly
lessons[].titlestringaTitolo completo
lessons[].imagestringaURL immagine della lezione (facoltativo)
lessons[].descriptionstringaRiepilogo della lezione (facoltativo)
venues[].idstringaIdentificatore univoco della sede
venues[].namestringaNome della sede (ad es. "Kids", "Adults", "Youth")
venues[].apiUrlstringaURL che restituisce il feed della sede (vedi sotto)

Le sedi rappresentano diverse versioni della stessa lezione personalizzate per diversi pubblici (gruppi di età, ambienti, ecc.).

Venue Feed

L'apiUrl di ogni sede deve restituire un oggetto JSON che corrisponde a questo schema:

{
"id": "venue-1",
"name": "Kids",
"lessonId": "lesson-1",
"lessonName": "The Baptism of Jesus",
"lessonImage": "https://example.com/images/lesson1.jpg",
"lessonDescription": "An introduction to Jesus' ministry.",
"studyName": "The Beginning",
"studySlug": "the-beginning",
"programName": "Gospel of Mark",
"programSlug": "gospel-of-mark",
"programAbout": "A 12-week study through the Gospel of Mark.",
"downloads": [],
"sections": [
{
"id": "section-1",
"name": "Opening Discussion",
"sort": 1,
"materials": "Whiteboard and markers",
"actions": [
{
"id": "action-1",
"actionType": "text",
"content": "**Key Verse:** Mark 1:9-11",
"sort": 1
},
{
"id": "action-2",
"actionType": "question",
"content": "What do you know about baptism?",
"sort": 2,
"role": "Leader"
},
{
"id": "action-3",
"actionType": "play",
"content": "Intro Video",
"sort": 3,
"files": [
{
"id": "file-1",
"name": "intro-video.mp4",
"url": "https://example.com/media/intro.mp4",
"streamUrl": "https://vimeo.com/123456789",
"fileType": "video/mp4",
"seconds": 180,
"bytes": 52428800,
"thumbnail": "https://example.com/media/intro-thumb.jpg",
"loop": false
}
]
}
]
}
]
}

Campi del feed della sede

Oggetto radice

CampoTipoDescrizione
idstringaIdentificatore della sede
namestringaNome della sede
lessonIdstringaIdentificatore della lezione
lessonNamestringaNome visualizzato della lezione
lessonImagestringaURL immagine della lezione
lessonDescriptionstringaRiepilogo della lezione
studyNamestringaNome dello studio genitore
studySlugstringaSlug dello studio genitore
programNamestringaNome del programma genitore
programSlugstringaSlug del programma genitore
programAboutstringaDescrizione del programma
downloadsarrayBundle di file scaricabili
sectionsarraySezioni di lezione ordinate

Sezione

CampoTipoDescrizione
idstringaIdentificatore della sezione
namestringaTitolo della sezione
sortnumeroOrdine di visualizzazione
materialsstringaMateriali o note di preparazione (facoltativo)
actionsarrayAzioni ordinate in questa sezione

Azione

CampoTipoDescrizione
idstringaIdentificatore dell'azione
actionTypestringaUno di: play, text, question, quote, subhead
contentstringaContenuto di testo o etichetta multimediale
sortnumeroOrdine di visualizzazione
rolestringaNome del ruolo, ad es. "Leader", "Kids" (facoltativo)
roleIdstringaIdentificatore del ruolo (facoltativo)
filesarrayFile multimediali per azioni play (facoltativo)

File

CampoTipoDescrizione
idstringaIdentificatore del file
namestringaNome del file
urlstringaURL di download diretto
streamUrlstringaURL di streaming, ad es. link Vimeo (facoltativo)
fileTypestringaTipo MIME (ad es. video/mp4, image/jpeg)
secondsnumeroDurata in secondi per audio/video (facoltativo)
bytesnumeroDimensione del file in byte (facoltativo)
thumbnailstringaURL immagine miniatura (facoltativo)
loopbooleanSe il supporto dovrebbe ripetersi (facoltativo, default false)

Scaricamento

CampoTipoDescrizione
namestringaNome del bundle di download (ad es. "Printable Materials")
filesarrayFile in questo bundle di download (stessi campi del File sopra)

Tipi di azione

TipoScopo
playRiproduzione multimediale -- video, audio o presentazione. Deve includere files.
textContenuto di testo statico. Supporta testo in grassetto stile markdown (**text**).
questionDomanda di discussione o riflessione per il pubblico.
quoteUna citazione in evidenza o passaggio delle Scritture.
subheadUn'intestazione o un divisore in una sezione.
Suggerimento

Per vedere un esempio funzionante del feed in azione, puoi visualizzare l'albero di contenuto Lessons.church integrato su https://api.lessons.church/lessons/public/tree e recuperare qualsiasi URL di feed della sede da esso.