跳到主要内容

内容端点

内容模块管理网站页面、板块、元素、可复用区块、博客文章、重定向、讲道、播放列表、直播流服务、活动、精选日历、文件、图库、圣经译本与经文查询、诗歌、编排版本、全局样式、图库图片以及设置。它是 API 中规模最大的模块,为所有 ChurchApps 应用提供 CMS、媒体/直播、敬拜策划以及圣经相关功能的支持。

基础路径: /content

页面

基础路径:/content/pages

方法路径认证权限描述
GET/:churchId/tree?url=&id=Public按 URL 或 ID 加载完整的页面树(板块、元素、区块)。按 URL 获取时会去除内部 ID。基于 URL 的获取会强制执行 pages.visibility——受限页面会返回 { restricted: true, visibility },除非(可选的)JWT 满足权限门槛
GET/public/:churchIdPublic列出公开页面(urltitlemetaDescription);仅限 visibility = everyone 的页面
GET/:idJWT按 ID 获取页面
GET/JWT列出教会的所有页面
POST/duplicate/:idJWTContent.Edit复制页面及其所有板块和元素
POST/temp/aiJWTContent.Edit保存 AI 生成的页面(一次调用同时保存页面、板块和元素)
POST/JWTContent.Edit创建或更新页面(批量)
DELETE/:idJWTContent.Edit删除页面

示例:加载页面树

GET /content/pages/abc-church-id/tree?url=/about
{
"name": "About",
"url": "/about",
"sections": [
{
"background": "#FFFFFF",
"textColor": "dark",
"elements": [
{ "elementType": "textWithPhoto", "answers": { "text": "Welcome" } }
]
}
]
}

板块

基础路径:/content/sections

方法路径认证权限描述
GET/:idJWT按 ID 获取板块
POST/duplicate/:id?convertToBlock=JWTContent.Edit复制板块,或将其转换为可复用区块
POST/JWTContent.Edit创建或更新板块(批量)。自动更新排序顺序
DELETE/:idJWTContent.Edit删除板块(自动更新排序顺序)

元素

基础路径:/content/elements

方法路径认证权限描述
GET/:idJWT按 ID 获取元素
POST/duplicate/:idJWTContent.Edit复制元素及其所有子元素
POST/JWTContent.Edit创建或更新元素(批量)。自动管理行列布局与轮播幻灯片
DELETE/:idJWTContent.Edit删除元素

可复用区块

基础路径:/content/blocks

继承标准 CRUD(基类提供 GET /:id、GET /、POST /、DELETE /:id,写入操作需要 Content.Edit 权限)。

方法路径认证权限描述
GET/:idJWT按 ID 获取区块
GET/JWT列出所有区块
GET/:churchId/tree/:idPublic加载包含板块和元素的完整区块树
GET/blockType/:blockTypeJWT按类型加载区块(如 footerBlock、elementBlock)
GET/public/footer/:churchIdPublic加载某教会的页脚区块树
POST/JWTContent.Edit创建或更新区块
DELETE/:idJWTContent.Edit删除区块

链接

基础路径:/content/links

继承标准 CRUD(基类提供 GET /:id、GET /、POST /、DELETE /:id,写入操作需要 Content.Edit 权限)。

方法路径认证权限描述
GET/:idJWT按 ID 获取链接
GET/JWT列出所有链接。可选 ?category= 筛选。保存后自动排序
GET/church/:churchId/filtered?category=JWT加载按可见性(所有人、访客、会员、工作人员、小组)筛选的链接
GET/church/:churchId?category=Public按分类加载某教会的链接(公开)
POST/JWTContent.Edit创建或更新链接(批量)。按分类自动排序
DELETE/:idJWTContent.Edit删除链接

全局样式

基础路径:/content/globalStyles

继承标准 CRUD(基类提供 POST /、DELETE /:id,写入操作需要 Content.Edit 权限)。

方法路径认证权限描述
GET/church/:churchIdPublic加载某教会的全局样式(未设置时返回默认值)
GET/JWT加载已认证教会的全局样式
POST/JWTContent.Edit创建或更新全局样式
DELETE/:idJWTContent.Edit删除全局样式

页面历史

基础路径:/content/pageHistory

方法路径认证权限描述
GET/page/:pageIdJWTContent.Edit列出某页面的历史条目
GET/block/:blockIdJWTContent.Edit列出某区块的历史条目
GET/:idJWTContent.Edit按 ID 获取历史条目
POST/JWTContent.Edit保存页面/区块快照。定期清理超过 30 天的旧条目
POST/restore/:idJWTContent.Edit从历史快照恢复页面/区块(删除当前内容并根据快照重新创建)
POST/restoreSnapshotJWTContent.Edit从内联快照对象恢复。请求体:{ pageId, blockId, snapshot }

文章(博客)

基础路径:/content/posts

博客文章是独立的数据行:包含 titleslug(每教会唯一)、excerptcontent(Markdown 正文)、authorIdphotoUrlpublishDatecategorytags。一旦设置了 publishDate 且该日期已过,文章即被视为已发布。读取端点会将 authorId 解析为 authorName 一并返回。请参见网站构建器架构

方法路径认证权限描述
GET/public/:churchId?category=&tag=&page=&pageSize=Public分页列出已发布文章(每页最多 50 篇)
GET/public/:churchId/categoriesPublic已发布文章中的所有不重复分类
GET/public/:churchId/slug/:slugPublic按 slug 获取已发布文章
GET/rss/:churchId?siteUrl=Public已发布文章的 RSS 2.0 订阅源(链接构建为 {siteUrl}/blog/{slug}
GET/:idJWT按 ID 获取文章
GET/JWT列出教会的所有文章
POST/JWTContent.Edit创建或更新文章(批量)
DELETE/:idJWTContent.Edit删除文章

重定向

基础路径:/content/redirects

按教会设置的 URL 重定向(fromPathtoPath),每个教会最多 200 条。路径会被标准化(转小写、加前导斜杠、去除尾部斜杠),且 fromPath 在每个教会内唯一。B1App 会在遇到潜在的 404 时解析这些重定向,并返回 HTTP 308。

方法路径认证权限描述
GET/public/:churchId?path=Public解析某个路径(省略 path 时列出所有重定向)
GET/:idJWT按 ID 获取重定向
GET/JWT列出教会的所有重定向
POST/JWTContent.Edit创建或更新重定向。拒绝 fromPath = toPath,并强制执行 200 条上限
DELETE/:idJWTContent.Edit删除重定向

讲道

基础路径:/content/sermons

方法路径认证权限描述
GET/public/freeshowSampleJWT获取示例 FreeShow 播放列表结构
GET/public/tvWrapper/:churchIdJWT获取包含讲道、课程和 FreeShow 来源的电视应用包装数据
GET/public/tvFeed/:churchId/:sermonIdPublic将单篇讲道作为电视订阅源播放列表获取
GET/public/tvFeed/:churchIdPublic将所有公开播放列表/讲道作为电视订阅源获取
GET/public/:churchIdPublic列出某教会的所有公开讲道
GET/timeline?sermonIds=JWT加载讲道的时间线数据
GET/lookup?videoType=&videoData=Public从 YouTube 或 Vimeo 查询讲道元数据
GET/socialSuggestions?youtubeVideoId=JWT根据讲道字幕生成 AI 社交媒体推文建议
GET/outline?url=&title=&author=JWT根据 URL 生成 AI 课程大纲
GET/youtubeImport/:channelIdJWT从 YouTube 频道导入视频
GET/vimeoImport/:channelIdJWT从 Vimeo 频道导入视频
GET/:idJWT按 ID 获取讲道
GET/JWT列出所有讲道
POST/JWTStreamingServices.Edit创建或更新讲道(批量,支持 base64 缩略图上传)
DELETE/:idJWTStreamingServices.Edit删除讲道

示例:查询一条 YouTube 讲道

GET /content/sermons/lookup?videoType=youtube&videoData=dQw4w9WgXcQ
{
"title": "Sunday Service - Faith in Action",
"description": "Pastor John speaks about faith...",
"thumbnail": "https://img.youtube.com/vi/dQw4w9WgXcQ/default.jpg",
"duration": 2400,
"publishDate": "2025-01-15T10:00:00Z"
}

播放列表

基础路径:/content/playlists

继承标准 CRUD(基类提供 GET /:id、GET /、DELETE /:id,写入操作需要 StreamingServices.Edit 权限)。

方法路径认证权限描述
GET/:idJWT按 ID 获取播放列表
GET/JWT列出所有播放列表
GET/public/:churchIdPublic列出某教会的所有公开播放列表
POST/JWTStreamingServices.Edit创建或更新播放列表(批量,支持 base64 缩略图上传)
DELETE/:idJWTStreamingServices.Edit删除播放列表

直播流服务

基础路径:/content/streamingServices

方法路径认证权限描述
GET/:id/hostChatJWTChat.Host获取某场服务的加密主持人聊天室 ID
GET/JWT列出所有直播流服务。自动清理已过期的非重复服务,并推进重复性服务
POST/JWTStreamingServices.Edit创建或更新直播流服务(批量)
DELETE/:idJWTStreamingServices.Edit删除直播流服务(同时清除被阻止的 IP)

活动

基础路径:/content/events

方法路径认证权限描述
GET/timeline/group/:groupId?eventIds=JWT加载某小组的时间线活动
GET/timeline?eventIds=JWT加载当前用户所属小组的时间线活动
GET/subscribe?churchId=&groupId=&curatedCalendarId=Public以 ICS 日历订阅源的形式订阅活动
GET/group/:groupIdJWT获取某小组的活动(含例外日期)
GET/public/group/:churchId/:groupIdPublic获取某小组的公开活动
GET/:idJWT按 ID 获取活动
POST/JWT创建或更新活动(批量)
DELETE/:idJWTContent.Edit删除活动

活动例外

基础路径:/content/eventExceptions

方法路径认证权限描述
GET/:idJWT按 ID 获取活动例外
POST/JWTContent.Edit创建或更新活动例外(批量)
DELETE/:idJWTContent.Edit删除活动例外

精选日历

基础路径:/content/curatedCalendars

方法路径认证权限描述
GET/:idJWT按 ID 获取精选日历
GET/JWT列出所有精选日历
POST/JWTContent.Edit创建或更新精选日历(批量)
DELETE/:idJWTContent.Edit删除精选日历

精选活动

基础路径:/content/curatedEvents

方法路径认证权限描述
GET/calendar/:curatedCalendarId?withoutEventsJWT获取某日历的精选活动(除非设置了 ?withoutEvents,否则包含活动详情和例外日期)
GET/public/calendar/:churchId/:curatedCalendarIdPublic获取某日历的公开精选活动
GET/:idJWT按 ID 获取精选活动
GET/JWT列出所有精选活动
POST/JWTContent.Edit创建或更新精选活动。支持通过 eventIds 数组添加特定的小组活动
DELETE/:idJWTContent.Edit删除精选活动
DELETE/calendar/:curatedCalendarId/event/:eventIdJWTContent.Edit从精选日历中移除某个特定活动
DELETE/calendar/:curatedCalendarId/group/:groupIdJWTContent.Edit从精选日历中移除某小组的所有活动

文件

基础路径:/content/files

方法路径认证权限描述
GET/:contentType/:contentIdJWT按内容类型和内容 ID 获取文件
GET/JWT列出教会网站的所有文件
GET/:idJWT按 ID 获取文件
POST/JWTContent.Edit*上传文件(base64)。*若用户是与 contentId 匹配的小组成员,也允许操作
POST/postUrlJWTContent.Edit*获取预签名的 S3 上传 URL。*同样允许小组成员操作。每个内容项最多 100MB
DELETE/:idJWTContent.Edit*删除文件并从存储中移除。*同样允许小组成员操作

图库

基础路径:/content/gallery

方法路径认证权限描述
GET/stock/:folderPublic列出某文件夹中的图库图片
GET/:folderJWTContent.Edit列出某文件夹中的图库图片
POST/requestUploadJWTContent.Edit获取图库图片的预签名 S3 上传 URL
DELETE/:folder/:imageJWTContent.Edit删除图库图片

圣经

基础路径:/content/bibles

所有圣经相关端点均为公开端点(无需认证)。数据从外部来源获取并在本地缓存。

方法路径认证权限描述
GET/Public列出所有圣经译本(若缓存为空则从来源获取)
GET/stats?startDate=&endDate=Public获取某日期范围内的圣经查询统计
GET/availableTranslations/:sourcePublic列出某来源(如 api.bible)可用的译本
GET/updateTranslationsPublic从所有来源同步全部译本
GET/updateTranslations/:sourcePublic从特定来源同步译本
GET/updateCopyrightsPublic为缺少版权信息的译本更新版权信息
GET/:translationKey/updateCopyrightPublic更新特定译本的版权信息
GET/:translationKey/search?query=&limit=Public在某译本中搜索经文
GET/:translationKey/booksPublic获取某译本的书卷列表(在本地缓存)
GET/:translationKey/:bookKey/chaptersPublic获取某书卷的章节列表(在本地缓存)
GET/:translationKey/chapters/:chapterKey/versesPublic获取某章的经文列表(在本地缓存)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublic获取某范围的经文内容。会记录查询日志。部分译本出于授权原因不使用缓存

示例:获取经文内容

GET /content/bibles/de4e12af7f28f599-02/verses/GEN.1.1-GEN.1.3
[
{ "verseKey": "GEN.1.1", "content": "In the beginning God created the heavens and the earth.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 1 },
{ "verseKey": "GEN.1.2", "content": "Now the earth was formless and empty...", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 2 },
{ "verseKey": "GEN.1.3", "content": "And God said, \"Let there be light,\" and there was light.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 3 }
]

诗歌

基础路径:/content/songs

方法路径认证权限描述
GET/search?q=JWT按关键词搜索诗歌
GET/:idJWT按 ID 获取诗歌
GET/JWTContent.Edit列出所有诗歌
POST/JWTContent.Edit创建或更新诗歌(批量)
POST/importJWT从 FreeShow 导入诗歌(批量)
DELETE/:idJWTContent.Edit删除诗歌

诗歌详情

基础路径:/content/songDetails

诗歌详情是全局性的(不限定于某个教会)。这些数据代表跨教会共享的标准诗歌元数据。

方法路径认证权限描述
GET/:idJWT按 ID 获取诗歌详情(全局)
GET/JWT列出该教会的诗歌详情
POST/createJWT从 PraiseCharts ID 创建诗歌详情(若已存在则返回现有记录)。自动从 PraiseCharts 和 MusicBrainz 获取元数据
POST/JWT创建或更新诗歌详情(批量)

诗歌详情链接

基础路径:/content/songDetailLinks

方法路径认证权限描述
GET/:idJWT按 ID 获取诗歌详情链接
GET/songDetail/:songDetailIdJWT获取某诗歌详情的所有链接
POST/JWT创建或更新诗歌详情链接(批量)。如已关联则自动获取 MusicBrainz 数据
DELETE/:idJWT删除诗歌详情链接

编排版本

基础路径:/content/arrangements

方法路径认证权限描述
GET/:idJWT按 ID 获取编排版本
GET/song/:songIdJWTContent.Edit获取某首诗歌的编排版本
GET/songDetail/:songDetailIdJWTContent.Edit获取某诗歌详情的编排版本
GET/JWTContent.Edit列出所有编排版本
POST/JWTContent.Edit创建或更新编排版本(批量)
POST/freeShow/missingJWT查找该教会中不存在的 FreeShow ID。请求体:{ freeShowIds: string[] }
DELETE/:idJWTContent.Edit删除编排版本(同时删除其调号;若不再有任何编排版本则同时删除该诗歌)

编排调号

基础路径:/content/arrangementKeys

方法路径认证权限描述
GET/presenter/:churchId/:idPublic获取带完整诗歌数据的编排调号,用于演示视图
GET/:idJWT按 ID 获取编排调号
GET/arrangement/:arrangementIdJWTContent.Edit获取某编排版本的调号
GET/JWTContent.Edit列出所有编排调号
POST/JWTContent.Edit创建或更新编排调号(批量)
DELETE/:idJWTContent.Edit删除编排调号

设置

基础路径:/content/settings

方法路径认证权限描述
GET/myJWT获取当前用户的设置
GET/JWTSettings.Edit获取该教会的所有设置
GET/public/:churchIdPublic获取某教会的公开设置(以键值对形式返回)
POST/myJWT保存用户级设置(支持 base64 图片上传)
POST/JWTSettings.Edit保存教会级设置(支持 base64 图片上传)
DELETE/my/:idJWT删除某用户设置

预览

基础路径:/content/preview

方法路径认证权限描述
GET/data/:keyPublic按子域名标识为某教会加载直播预览数据(标签页、链接、礼拜、讲道)

图库(图库图片)

基础路径:/content/stock

方法路径认证权限描述
POST/searchPublic搜索 Pexels 图库图片。请求体:{ term: "church" }

PraiseCharts

基础路径:/content/praiseCharts

与 PraiseCharts 的集成,用于敬拜诗歌发现和乐谱下载。

方法路径认证权限描述
GET/raw/:idJWT获取某首诗歌的原始 PraiseCharts 数据
GET/hasAccountJWT检查用户是否已关联 PraiseCharts 账户
GET/search?q=JWT搜索 PraiseCharts 目录
GET/products/:id?keys=JWT获取某首诗歌的产品信息(若已认证则来自用户库,否则来自目录)
GET/arrangement/raw/:id?keys=JWT从用户库获取原始编排版本数据
GET/download?skus=&keys=&file_name=JWT从 PraiseCharts 下载文件(PDF 或 ZIP)。返回 { redirectUrl }
GET/authUrl?returnUrl=Public获取 PraiseCharts 的 OAuth 授权 URL
GET/access?verifier=&token=&secret=JWT用 OAuth verifier 换取访问令牌并保存到用户设置
GET/libraryJWT浏览用户的 PraiseCharts 资源库

支持

基础路径:/content/support

方法路径认证权限描述
POST/createAudioPublic使用 AWS Polly 将 SSML 转换为 MP3 音频。请求体:{ ssml: "<speak>...</speak>" }

相关页面