@churchapps/内容提供者
内容 提供助手 是TypeScript库,用于与第三方内容提供商,如规划中心(Planning Center),"经验教训"等进行整合. 教堂,还有更多。 它为浏览媒体库,处理OAuth认证,以及在教堂演示软件中检索回放内容提供了统一的界面.
安装
npm install @churchapps/content-providers
使用量
浏览可用供应商
import { getAllProviders, getAvailableProviders } from '@churchapps/content-providers';
// Get all registered providers
const providers = getAllProviders();
// Get info about available providers
const available = getAvailableProviders();
console.log(available); // [{ id: 'planningcenter', name: 'Planning Center', ... }]
使用特定提供者
import { getProvider } from '@churchapps/content-providers';
const provider = getProvider('planningcenter');
// Browse content
const items = await provider.browse();
// Get presentations/playlist for a service
const plan = await provider.getPresentations(serviceId);
内建供应商
- B1 教堂提供器 - B1. 教会计划(将计划项目与教学场所和外部提供者合并)
- 经验教训 - 课程和附加
- 规划中心 - 规划中心服务(仅浏览)
- 圣经项目提供者 - 《圣经计划》录像
- APlay 提供者 - A.Play媒体图书馆
- 签名 Presenter 服务器 - 签名播放列表
- 弹出盒 - 来自 Dropbox 账户的媒体文件
- 耶稣护法 - 耶稣电影计划(Arclight API)
- Cbn 提供 - CBN 超书课程
- 高压设备 - 高压儿童课程(静态目录)
- 生命教会 - 生活 - 生活 - Life. 教会儿童课程(静态目录)
- FreeShow提供工具 - 本地网络上发现的自由秀节目(模拟播放列表)
创建自定义提供者
import { BaseProvider, registerProvider } from '@churchapps/content-providers';
class MyProvider extends BaseProvider {
// Declare id/name/logos/config/requiresAuth/authTypes/capabilities and implement browse().
// Every declared authType/capability must be backed by its IProvider methods (enforced by
// tests/contentProviders.test.ts):
// oauth_pkce -> generateCodeVerifier / buildAuthUrl / buildAuthUrlFromChallenge / exchangeCodeForTokens
// (OAuthHelper implements the standard flow; delegate to it like SignPresenterProvider)
// device_flow -> initiateDeviceFlow / pollDeviceFlowToken (see DeviceFlowHelper)
// form_login -> performLogin
// network_discovery -> discoverInstances
// playlist / instructions / mediaLicensing -> getPlaylist / getInstructions / checkMediaLicense
// The protected apiRequest() helper performs authenticated JSON fetches against config.apiBase.
}
registerProvider(new MyProvider());
参与
帮助我们
这个程序免费的唯一原因是由于用户的慷慨支持. 如果你想支持我们 保持这个自由, 请去 教会附录 或者说 在 GitHub 上赞助我们谢谢你!
加入社区
我们有一个伟大的社区 最终用户在 脸书。这是一个很好的方法 问问题,得到提示和跟踪新的更新。 来加入我们!
报告一个问题
如果你发现一个问题或有一个特征请求, 就把它交给我们 问题日志别害羞 程序就是这样好的.
加入我们Slack
如果你愿意以任何方式做出贡献, 请到我们这里去 黑频道 自我介绍 我们很乐意听到你的消息.
开始编码
如果你愿意为这个项目捐款:
- 清除仓库
- 安装依赖性 :
npm install - 运行开发游乐场:
npm run dev - 构建 :
npm run build
许可证
麻省理工学院