Lumipat sa pangunahing nilalaman

Open Lesson Format

Ang Open Lesson Format ay isang standardized JSON schema na nagpapahintulot sa third-party content providers na maglathala ng kurso para sa Lessons.church. Anumang organisasyon na nag-host ng feed sa format na ito ay maaaring idagdag bilang isang external provider, na ginagawang browsable at playable ang kanilang nilalaman sa tabi ng ang built-in library.

Paano Gumagana Ito

Isang provider ay nag-host ng dalawang uri ng endpoints:

  1. Provider Tree -- Isang solong URL na nagbabalik sa buong katalogo ng mga programa, pag-aaral, mga aralin, at mga lugar. Bawat lugar ay may kasamang feed URL na tumuturo sa detalyadong nilalaman ng aralin.
  2. Venue Feed -- Isang URL sa bawat lugar, nagbabalik sa buong nilalaman ng aralin (mga seksyon, mga aksyon, at mga media na file).

Kapag ang isang simbahan ay nagdagdag ng iyong provider URL sa Lessons.church, ang platform ay nag-fetch ng iyong tree upang matuklasan ang available na nilalaman, pagkatapos ay nag-fetch ng mga indibidwal na venue feed on demand.

Provider Tree

Ang iyong provider URL ay dapat magbalik ng isang JSON object na may ganitong istraktura:

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

Mga Puwang ng Tree

FieldTypeDescription
programs[].idstringNatatanging identifier ng programa
programs[].namestringDisplay name
programs[].slugstringURL-friendly name
programs[].imagestringURL ng imahe ng programa (opsyonal)
programs[].aboutstringPaglalarawan (opsyonal)
studies[].idstringNatatanging identifier ng pag-aaral
studies[].namestringDisplay name
studies[].slugstringURL-friendly name
studies[].imagestringURL ng imahe ng pag-aaral (opsyonal)
lessons[].idstringNatatanging identifier ng aralin
lessons[].namestringDisplay name
lessons[].slugstringURL-friendly name
lessons[].titlestringBuong titulo
lessons[].imagestringURL ng imahe ng aralin (opsyonal)
lessons[].descriptionstringBuod ng aralin (opsyonal)
venues[].idstringNatatanging identifier ng lugar
venues[].namestringPangalan ng lugar (hal. "Kids", "Adults", "Youth")
venues[].apiUrlstringURL na nagbabalik ng venue feed (tingnan sa ibaba)

Ang mga lugar ay kumakatawan sa iba't ibang bersyon ng parehong aralin na idinisenyo para sa iba't ibang audience (mga edad, setting, atb.).

Venue Feed

Bawat apiUrl ng lugar ay dapat magbalik ng isang JSON object na tumutugma sa schema na ito:

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

Mga Puwang ng Venue Feed

Root Object

FieldTypeDescription
idstringIdentifier ng lugar
namestringPangalan ng lugar
lessonIdstringIdentifier ng aralin
lessonNamestringDisplay name ng aralin
lessonImagestringURL ng imahe ng aralin
lessonDescriptionstringBuod ng aralin
studyNamestringPangalan ng parent study
studySlugstringSlug ng parent study
programNamestringPangalan ng parent program
programSlugstringSlug ng parent program
programAboutstringPaglalarawan ng programa
downloadsarrayMga downloadable na bundles ng file
sectionsarrayMga ordered na seksyon ng aralin

Seksyon

FieldTypeDescription
idstringIdentifier ng seksyon
namestringPamagat ng seksyon
sortnumberDisplay order
materialsstringMga materyales o mga nota sa paghahanda (opsyonal)
actionsarrayMga ordered na aksyon sa loob ng seksyong ito

Aksyon

FieldTypeDescription
idstringIdentifier ng aksyon
actionTypestringIsa sa: play, text, question, quote, subhead
contentstringNilalaman ng teksto o label ng media
sortnumberDisplay order
rolestringPangalan ng tungkulin, hal. "Leader", "Kids" (opsyonal)
roleIdstringIdentifier ng tungkulin (opsyonal)
filesarrayMga media file para sa play na mga aksyon (opsyonal)

Puwang

FieldTypeDescription
idstringIdentifier ng file
namestringPangalan ng file
urlstringdirektang URL ng pag-download
streamUrlstringStreaming URL, hal. Vimeo link (opsyonal)
fileTypestringMIME type (hal. video/mp4, image/jpeg)
secondsnumberTagal sa segundo para sa audio/video (opsyonal)
bytesnumberLaki ng file sa bytes (opsyonal)
thumbnailstringURL ng thumbnail na imahe (opsyonal)
loopbooleanKung ang media ay dapat mag-loop (opsyonal, default false)

Pag-download

FieldTypeDescription
namestringPangalan ng bundle ng pag-download (hal. "Printable Materials")
filesarrayMga file sa bundle ng pag-download na ito (parehong mga puwang bilang File sa itaas)

Mga Uri ng Aksyon

TypePurpose
playPlayback ng media -- video, audio, o slideshow. Dapat kasama ang files.
textStatic text content. Sinusuportahan ang markdown-style bold (**text**).
questionTanong sa pagpapahayag o pagmumuni-muni para sa audience.
quoteIsang highlight na quote o Scripture passage.
subheadIsang heading o divider sa loob ng isang seksyon.
Tip

Upang makita ang isang gumagana na halimbawa ng feed sa aksyon, maaari mong tingnan ang built-in na nilalaman ng puno ng Lessons.church sa https://api.lessons.church/lessons/public/tree at mag-fetch ng anumang venue feed URL mula dito.