LingTongAsk 发布指南
版本: v1.0 更新日期: 2026-04-03
📋 目录
环境配置
方式一:环境变量(推荐)
在 .env 文件中配置:
# B站配置(二选一)
BILIBILI_ACCESS_TOKEN=your_access_token
# 或使用OAuth
BILIBILI_CLIENT_ID=your_client_id
BILIBILI_CLIENT_SECRET=your_client_secret
# 微信公众号配置
WECHAT_MP_APP_ID=your_app_id
WECHAT_MP_APP_SECRET=your_app_secret
方式二:代码配置
from src.publisher import BilibiliAuthConfig, WechatMPConfig
# B站
bilibili_config = BilibiliAuthConfig(
client_id="your_client_id",
client_secret="your_client_secret",
)
# 微信公众号
wechat_config = WechatMPConfig(
app_id="your_app_id",
app_secret="your_app_secret",
)
B站发布
获取Access Token
方法一:OAuth认证(推荐)
import asyncio
from src.publisher import BilibiliAuthConfig, BilibiliPublisher
async def setup():
config = BilibiliAuthConfig(
client_id="your_client_id",
client_secret="your_client_secret",
)
publisher = BilibiliPublisher(config)
# 获取授权URL
auth_url = publisher.get_auth_url()
print(f"请访问: {auth_url}")
# 输入回调后的code
code = input("输入授权码: ")
await publisher.authenticate(code)
# 认证成功后,token会自动保存到本地
asyncio.run(setup())
方法二:直接使用已有Token
发布视频
import asyncio
from pathlib import Path
from src.publisher import (
create_bilibili_publisher,
BilibiliVideoMetadata,
BILIBILI_CATEGORIES,
)
async def publish_video():
# 创建发布器
publisher = await create_bilibili_publisher()
# 准备视频元数据
metadata = BilibiliVideoMetadata(
title="气功入门:什么是混元窍",
desc="混元窍是气功修炼中的重要概念,今天我们来聊聊它...",
tag=["气功", "健康", "养生"],
tid=BILIBILI_CATEGORIES["知识"], # 95 = 知识区
dynamic="每天10分钟,聊聊气功那些事儿",
copyright=1, # 1=原创
)
# 发布视频
result = await publisher.publish(
video_path=Path("episodes/ep001/video.mp4"),
metadata=metadata,
progress_callback=lambda uid, uploaded, total:
print(f"进度: {uploaded}/{total}"),
)
print(f"✅ 发布成功!")
print(f"BVID: {result['bvid']}")
print(f"AID: {result['aid']}")
asyncio.run(publish_video())
B站分区ID对照
| 名称 | TID | 名称 | TID |
|---|---|---|---|
| 知识 | 95 | 游戏 | 4 |
| 日常 | 21 | 娱乐 | 5 |
| 生活 | 21 | 影视 | 181 |
| 科技 | 95 | 运动 | 160 |
微信公众号发布
配置公众号
# 在微信公众平台获取AppID和AppSecret
# 设置环境变量
export WECHAT_MP_APP_ID=your_app_id
export WECHAT_MP_APP_SECRET=your_app_secret
发布图文消息
import asyncio
from pathlib import Path
from src.publisher import (
create_wechat_publisher,
WechatArticle,
create_article_from_episode,
)
async def publish_article():
# 创建发布器
publisher = await create_wechat_publisher()
# 方式一:直接创建文章
article = WechatArticle(
title="气功入门:什么是混元窍",
author="灵通问道",
digest="混元窍是气功修炼中的重要概念...",
content="<p>文章HTML内容...</p>",
thumb_media_id="封面图片素材ID",
show_cover_pic=1,
)
# 方式二:从节目内容创建
article = create_article_from_episode(
title="气功入门:什么是混元窍",
content="混元窍是气功修炼中的重要概念...",
cover_image_id="封面图片素材ID",
)
# 先预览(可选)
# await publisher.preview(
# media_id="素材ID",
# openid="你的openid",
# )
# 发布
result = await publisher.publish_article(article)
print(f"✅ 发布成功! msg_id: {result['msg_id']}")
asyncio.run(publish_article())
上传图片素材
async def upload_image():
publisher = await create_wechat_publisher()
# 上传封面图片
result = await publisher.uploader.upload_article_thumb(
image_path=Path("cover.jpg"),
)
print(f"✅ 上传成功! media_id: {result.media_id}")
return result.media_id
asyncio.run(upload_image())
常见问题
B站相关
Q: 如何获取B站 Client ID? A: 访问 https://openhome.bilibili.com/ 创建应用
Q: Access Token多久过期? A: 有效期约30天,过期后需重新授权
Q: 上传视频失败? A: 检查: 1. 视频格式(推荐MP4) 2. 文件大小(<4GB) 3. 网络连接
微信公众号相关
Q: 群发消息有次数限制吗? A: 订阅号每天1次,服务号每月4次
Q: 预览功能怎么用? A: 提供你的openid,可以预览发送给自己
Q: 如何获取openid? A: 用户关注公众号后,可通过用户管理接口获取
API参考
BilibiliPublisher
class BilibiliPublisher:
async def authenticate(code: str) -> bool
# 完成OAuth认证
def get_auth_url(state: str = "") -> str
# 获取授权URL
async def publish(
video_path: Path,
metadata: BilibiliVideoMetadata,
progress_callback: callable = None,
) -> Dict[str, Any]
# 上传并发布视频
async def get_user_info() -> Dict[str, Any]
# 获取用户信息
WechatMPPublisher
class WechatMPPublisher:
async def upload_articles(
articles: List[WechatArticle],
) -> str
# 上传图文素材
async def send_all(
media_id: str,
send_ignore_reprint: int = 0,
) -> Dict[str, Any]
# 群发给所有粉丝
async def preview(
media_id: str,
openid: str,
) -> Dict[str, Any]
# 预览发送
async def publish_article(
article: WechatArticle,
preview_openid: str = None,
) -> Dict[str, Any]
# 发布文章
开发路线
Phase 1 (已完成)
- ✅ B站API基础框架
- ✅ 微信公众号API基础框架
Phase 2 (规划中)
- [ ] 喜马拉雅API集成
- [ ] 抖音API集成
- [ ] 小红书API集成
Phase 3 (规划中)
- [ ] 统一发布CLI
- [ ] 定时发布功能
- [ ] 发布状态监控
更新: 2026-04-03 维护: 灵通 + 灵极优