关于 telegram-post
通过 Publora 创建和安排 Telegram 频道及群组帖文的技能,支持格式化文本和媒体,并需遵循 Telegram Bot API 的限制。
主要功能
- 01创建并安排帖文
- 02使用 Telegram Markdown 格式化
- 03添加照片或视频
- 04支持频道和群组
适用场景
- 01安排频道公告
- 02发布格式化产品更新
- 03分享带说明文字的图片
MCP 相关
通过 `https://mcp.publora.com/mcp` 上的 Publora MCP 服务创建和安排 Telegram 帖文。文档也提供 REST API 备用方案。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ publora/ skills --skill telegram-post安装后在 Claude Code 中输入/telegram-post确认已加载。
详细介绍
Telegram 帖子
使用 Publora MCP 服务创建并安排 Telegram 频道和群组的帖子。支持丰富的 Markdown 格式、照片、视频和消息投递选项。
前提条件
套餐: 免费 Starter 套餐即可使用。当前限额和价格:publora.com/pricing。
开始使用
- 创建账户:publora.com/register(免费)
- 创建 Telegram 机器人:
- 在 Telegram 上向 @BotFather 发送消息
- 发送
/newbot并按说明操作 - 保存机器人令牌
- 将机器人添加到频道:
- 将机器人作为管理员添加到频道/群组
- 授予
can_post_messages权限
- 在 Publora 中连接:前往 Dashboard,使用机器人令牌和频道进行连接:
- 公开频道:
@username或t.me/username - 私人频道:其
-100…聊天 ID,或其中任意一条消息的t.me/c/…链接(在消息上选择“复制链接”) - 邀请链接(
t.me/+…)会被拒绝:Bot API 无法通过此类链接识别频道
- 公开频道:
- 获取 API 密钥:前往 app.publora.com/dashboard/api,仅在 Agent 无法通过 OAuth 登录或你将使用下方的 REST API 备用方案时才需要
- 将 Agent 连接到 MCP 服务:
https://mcp.publora.com/mcp- 升级不带
/mcp的手动连接: Claude 会将https://mcp.publora.com视为与捆绑连接不同的服务。在当前作用域中,将现有连接改为https://mcp.publora.com/mcp,并保留其身份验证和所选账户;如果系统提示,请重新登录。或者,先确认捆绑连接使用的是目标账户,然后仅移除旧的手动条目。不要添加第二个条目,也不要自动删除凭据。 - Publora 工具已可用(
publora-skills插件或 Claude 中的 Publora 连接器):无需进行任何设置。Claude 首次运行工具时会提示你登录 Publora。 - 支持 OAuth 的 Agent(Claude Code、Cursor,以及 Claude 和 ChatGPT 应用):按 URL 添加服务并登录,无需 API 密钥。在 Claude Code 中,添加服务后运行
/mcp登录:
- 升级不带
claude mcp add --transport http --scope user publora https://mcp.publora.com/mcp
- **不支持 OAuth 的 Agent:**将 API 密钥作为
Authorization: Bearer sk_YOUR_API_KEY发送:
claude mcp add --transport http --scope user publora https://mcp.publora.com/mcp \
--header "Authorization: Bearer sk_YOUR_API_KEY"
Claude Desktop、Cursor、Codex、OpenClaw 和 claude.ai 连接器各自需要不同的配置文件或流程:具体路径和代码片段请参阅客户端设置。
REST API 备用方案
如果 MCP 服务不可用或返回错误,请直接使用 REST API:
基础 URL: https://api.publora.com/api/v1
身份验证: 使用 x-publora-key 请求头(不要使用 Authorization: Bearer):
# Get your connected platforms
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_your_api_key"
# Create a post
curl -X POST "https://api.publora.com/api/v1/create-post" \
-H "x-publora-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["telegram--1001234567890"],
"content": "*Announcement*\n\nYour message here",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
平台 ID 格式: telegram-{chat_id},其中 {chat_id} 是 /platform-connections 返回的频道/群组数字 ID。机器人连接的聊天 ID 为负数(-100…),因此 ID 会有两个连字符。请原样复制,切勿重新构造。
ID 示例:telegram--1001234567890、telegram--1002345678901
📖 完整 API 文档: docs.publora.com
平台限制(Bot API)
| 功能 | 限制 |
|---|---|
| 文本消息 | 4,096 个字符 |
| 媒体说明文字 | 1,024 个字符(关键限制!) |
| 图片 | 最大 10 MB,每个媒体组最多 10 张 |
| 图片格式 | JPEG、PNG、GIF、BMP、WebP |
| 视频大小 | 最大 50 MB(不是 4 GB——那是用户的限制!) |
| 视频格式 | MP4、MOV、AVI、MKV、WebM |
| 速率限制 | 全局每秒 30 条消息,每个群组每分钟 20 条 |
**关键提示:**Bot API 的限制远低于普通 Telegram 用户。超过 50 MB 的视频和超过 1,024 个字符的说明文字都会导致失败。
Markdown 格式
Telegram 使用自己的 Markdown 方言,粗体使用单个星号:
| 语法 | 结果 |
|---|---|
*bold* | 粗体 |
_italic_ | 斜体 |
`code` | 行内代码 |
code | 代码块 |
[text](url) | 超链接 |
> text | 引用块 |
注意: 这与标准 Markdown 不同,标准 Markdown 使用 **两个星号** 表示粗体。
可用工具
create_post
创建新的 Telegram 帖子。
参数:
platforms:包含你的 Telegram 连接 ID 的数组(例如,["telegram--1001234567890"])content:消息文本(支持 Markdown)scheduledTime:ISO 8601 UTC 日期时间。可选:省略此项会将帖子创建为草稿。设置未来时间可进行定时发布。若时间比当前时间早五分钟或以上,则会被拒绝并返回SCHEDULED_TIME_IN_PAST;如需立即发布,请使用当前时间加一分钟。mediaUrls:最多 10 个公开的 https 图片或视频 URL。Publora 会在服务器端下载并附加媒体,之后再进行验证,因此媒体和定时发布可在一次调用中完成。这是“先创建草稿,再调用get_upload_url,然后调用complete_media”流程的一步式替代方案。每小时最多可接收 60 个 URL。
get_upload_url
获取用于媒体上传的预签名 URL。
complete_media
在预签名 PUT 成功后,完成通过 get_upload_url 上传的文件。此步骤可选,因为定时发布也会完成待处理媒体;但提前调用可在发布前显示格式和探测错误。对于通过 mediaUrls 附加的媒体,无需调用。
参数:
mediaId:get_upload_url返回的 ID
list_connections
列出已连接的账号及其平台 ID。请先调用此工具并原样复制 ID;这些 ID 无法猜测。私有频道没有公开用户名:其 username 为 null,因此请通过 displayName(频道标题)进行匹配。
list_posts / get_post / update_post / delete_post
管理定时发布的帖子和草稿。update_post 还会更新草稿或定时帖子中的 content 和 platforms,因此修正错别字或更改发布目标时,无需再删除并重建。delete_media 和 prune_media_reference 可清理已上传的文件。
帖子选项(通过 REST API)
通过 REST API 的 platformSettings.telegram 可设置 Telegram 专属选项:
| 选项 | 说明 |
|---|---|
disableNotification | 静默发送(无声音) |
disableWebPagePreview | 不显示链接预览卡片 |
protectContent | 防止转发或保存 |
无法设置媒体上方的说明文字:showCaptionAboveMedia 不是受支持的键,发送该键会返回 400 PLATFORM_SETTING_UNKNOWN。
注意:MCP 的 create_post 和 update_post 工具以及 REST API 均接受 platformSettings。其架构为严格模式:平台或键名输入错误会触发验证错误,而不会被静默忽略。
示例
简单的频道帖子
Post this to my Telegram channel:
"*Product Update v2.5*
We have shipped the following improvements:
- _Faster API response times_ (avg 45ms)
- New `batch` endpoint for bulk operations
[Read the changelog](https://example.com/changelog)"
带格式的公告
Create a Telegram post with this formatting:
"*Important Update*
We're launching our new feature tomorrow at 10 AM UTC.
_What's new:_
- Feature A improvements
- Feature B release
[Read the full announcement](https://example.com/update)"
带图片的帖子
Post this image to my Telegram channel with caption:
"*New Dashboard Preview*
Here's a sneak peek at our redesigned analytics dashboard."
重要: 发布包含媒体的帖子时,说明文字必须少于 1,024 个字符。
定时发布的帖子
Schedule this for tomorrow at 8 AM Moscow time:
"*Good morning!* Here's your daily market summary..."
重要限制
-
说明文字上限为 1,024 个字符:发布包含媒体(图片/视频)的帖子时,文本将作为说明文字发送,长度上限为 1,024 个字符。纯文本消息最多可包含 4,096 个字符。
-
视频最大为 50 MB:Bot API 将视频大小限制为 50 MB(而非普通用户的 4 GB)。较大视频将无法发送。
-
Bot 必须是管理员:你的 Bot 需要拥有
can_post_messages权限的管理员角色。此项会在连接时验证,并由POST /test-connection/{platformId}重新检查,而不会在每次发布前检查。 -
不能混合媒体:单个帖子不能同时包含图片和视频。
-
说明文字超出限制:如果包含媒体的帖子中,说明文字超过 1,024 个字符,则会作为单独的回复消息发送,而不会被截断。
最佳实践
内容
- 使用格式:加粗标题、斜体强调可提升可读性
- 链接预览:适合文章;关闭预览可让公告更简洁
- 表情符号:在 Telegram 上很常见,也很受欢迎
- 帖子长度:纯文本消息较长也不会受到限制
发布时间
- 全球受众:Telegram 用户遍布全球;请考虑按时区发布
- 最佳时段:目标地区的上午 8-10 点、中午 12-2 点、晚上 7-9 点
- 发布频率:频道可以更频繁地发布(每天 5-10 条)
互动
- 在频道设置中启用评论,方便讨论
- 使用投票促进互动
- 置顶重要公告
故障排除
| 错误 | 原因 | 解决方案 |
|---|---|---|
| "Bot not admin" | 机器人缺少管理员权限 | 将机器人添加为管理员,并授予 can_post_messages 权限 |
| "Channel not found" | 频道名称或 ID 错误,或机器人不在频道中 | 验证 @channelname 或 -100… 聊天 ID,并将机器人添加为管理员 |
| "Invite links cannot identify a channel for a bot" | 输入了 t.me/+… 邀请链接 | 使用频道的 -100… 聊天 ID 或 t.me/c/… 消息链接 |
MEDIA_CAPTION_TOO_LONG | 字幕超过 1,024 个字符 | 缩短字幕,或改用纯文本帖子 |
| "Bad Request: file is too big" | 文件超过 50 MB | 将视频或图片压缩至 50 MB 以下 |
| "Mixed media not supported" | 同一帖子中包含图片和视频 | 每个帖子只使用一种媒体类型 |