跳到主要内容

开放课程格式

开放课程格式是一个标准化的JSON架构,允许第三方内容提供商为Lessons.church发布课程。任何托管此格式提要的组织都可以作为外部提供商添加,使其内容可与内置库一起浏览和播放。

工作原理

提供商托管两种类型的端点:

  1. 提供商树 -- 返回完整的程序、学习、课程和场地目录的单个URL。每个场地包含一个指向详细课程内容的提要URL。
  2. 场地提要 -- 每个场地一个URL,返回完整的课程内容(部分、操作和媒体文件)。

当教会在Lessons.church中添加您的提供商URL时,平台会获取您的树以发现可用内容,然后按需获取各个场地提要。

提供商树

您的提供商URL必须返回具有此结构的JSON对象:

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

树字段

字段类型描述
programs[].idstring唯一的程序标识符
programs[].namestring显示名称
programs[].slugstringURL友好名称
programs[].imagestring程序图像URL(可选)
programs[].aboutstring描述(可选)
studies[].idstring唯一的学习标识符
studies[].namestring显示名称
studies[].slugstringURL友好名称
studies[].imagestring学习图像URL(可选)
lessons[].idstring唯一的课程标识符
lessons[].namestring显示名称
lessons[].slugstringURL友好名称
lessons[].titlestring完整标题
lessons[].imagestring课程图像URL(可选)
lessons[].descriptionstring课程摘要(可选)
venues[].idstring唯一的场地标识符
venues[].namestring场地名称(例如"儿童"、"成人"、"青年")
venues[].apiUrlstring返回场地提要的URL(见下文)

场地代表针对不同受众(年龄组、场景等)定制的相同课程的不同版本。

场地提要

每个场地的apiUrl必须返回符合此架构的JSON对象:

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

场地提要字段

根对象

字段类型描述
idstring场地标识符
namestring场地名称
lessonIdstring课程标识符
lessonNamestring课程显示名称
lessonImagestring课程图像URL
lessonDescriptionstring课程摘要
studyNamestring父学习名称
studySlugstring父学习slug
programNamestring父程序名称
programSlugstring父程序slug
programAboutstring程序描述
downloadsarray可下载的文件包
sectionsarray有序的课程部分

部分

字段类型描述
idstring部分标识符
namestring部分标题
sortnumber显示顺序
materialsstring材料或准备说明(可选)
actionsarray该部分内的有序操作

操作

字段类型描述
idstring操作标识符
actionTypestring以下之一:playtextquestionquotesubhead
contentstring文本内容或媒体标签
sortnumber显示顺序
rolestring角色名称,例如"Leader"、"Kids"(可选)
roleIdstring角色标识符(可选)
filesarrayplay操作的媒体文件(可选)

文件

字段类型描述
idstring文件标识符
namestring文件名
urlstring直接下载URL
streamUrlstring流URL,例如Vimeo链接(可选)
fileTypestringMIME类型(例如video/mp4image/jpeg
secondsnumber音频/视频持续时间(秒)(可选)
bytesnumber文件大小(字节)(可选)
thumbnailstring缩略图URL(可选)
loopboolean媒体是否应循环播放(可选,默认为false)

下载

字段类型描述
namestring下载包名称(例如"可打印材料")
filesarray此下载包中的文件(与上面的文件字段相同)

操作类型

类型用途
play媒体播放 -- 视频、音频或幻灯片。必须包含files
text静态文本内容。支持markdown样式粗体(**text**)。
question讨论或反思问题。
quote突出的引用或经文。
subhead部分内的标题或分隔符。
提示

要查看提要实际运行的工作示例,您可以在https://api.lessons.church/lessons/public/tree查看内置的Lessons.church内容树,并从中获取任何场地提要URL。