telegram-post について
Publora を使って Telegram のチャンネルやグループへの投稿を作成・予約するスキルです。書式付きテキストやメディアに対応し、Telegram Bot API の制限も考慮します。
主な機能
- 01投稿の作成と予約
- 02Telegram 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権限を付与します
- ボットトークンとチャンネルを使って、DashboardのPublora に接続します:
- 公開チャンネル:
@usernameまたはt.me/username - 非公開チャンネル:
-100…形式のチャット ID、またはチャンネル内の任意のメッセージのt.me/c/…リンク(メッセージの「リンクをコピー」) - 招待リンク(
t.me/+…)は拒否されます。Bot API は招待リンクからチャンネルを特定できません
- 公開チャンネル:
- OAuth でサインインできないエージェントを使う場合、または以下の REST API フォールバックを使う場合に限り、app.publora.com/dashboard/apiで API キーを取得します
https://mcp.publora.com/mcpで MCP サーバーにエージェントを接続します:/mcpを含まない手動接続を更新する場合: Claude はhttps://mcp.publora.comを、バンドルされたサーバーとは別のサーバーとして扱います。既存の接続先を現在のスコープ内でhttps://mcp.publora.com/mcpに変更し、認証情報と選択済みのアカウントはそのまま保持します。求められた場合は、再度サインインしてください。または、バンドルされた接続で意図したアカウントが使われていることを確認してから、古い手動エントリのみを削除します。2 つ目のエントリを追加したり、認証情報を自動的に削除したりしないでください。- Publora ツールがすでに利用できる場合(
publora-skillsプラグインまたは Claude の Publora コネクター):設定は不要です。ツールの初回実行時に、Claude から Publora へのサインインを求められます。 - OAuth に対応しているエージェント(Claude Code、Cursor、Claude アプリ、ChatGPT アプリ):サーバーを URL で追加してサインインします。API キーは不要です。Claude Code では、サーバーを追加してから
/mcpを実行してサインインします:
claude mcp add --transport http --scope user publora https://mcp.publora.com/mcp
- OAuth に対応していないエージェント: 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 の形式: /platform-connectionsから取得したチャンネル/グループの数値 ID を使い、telegram-{chat_id}の形式で指定します。ボット接続のチャット ID は負の値(-100…)なので、ID にはダッシュが 2 つ連続します。値をそのままコピーしてください。決して組み立て直さないでください。
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 ではありません。4 GB はユーザー向けです!) |
| 動画形式 | MP4、MOV、AVI、MKV、WebM |
| レート制限 | 全体で 30 メッセージ/秒、グループごとに 20 メッセージ/分 |
重要: Bot API の制限は、通常の Telegram ユーザーよりも大幅に厳しく設定されています。50 MB を超える動画や、1,024 文字を超えるキャプションは失敗します。
Markdown の書式
Telegram では、太字に アスタリスクを1つ使う独自の Markdown 形式を使用します。
| 構文 | 結果 |
|---|---|
*bold* | bold |
_italic_ | italic |
`code` | inline code |
code | コードブロック |
[text](url) | ハイパーリンク |
> text | 引用 |
注: 標準的な Markdown では **アスタリスク2つ** で太字になるため、形式が異なります。
利用可能なツール
create_post
Telegram の新しい投稿を作成します。
パラメーター:
platforms:Telegram 接続 ID の配列(例:["telegram--1001234567890"])content:メッセージ本文(Markdown に対応)scheduledTime:ISO 8601 形式の UTC 日時。**任意:**省略すると、投稿は下書きとして作成されます。未来の日時を指定すると、予約投稿されます。5分以上前の日時はSCHEDULED_TIME_IN_PASTエラーで拒否されるため、すぐに投稿する場合は現在時刻に1分を加えた日時を指定してください。mediaUrls:公開されている https の画像または動画 URL を最大10件指定できます。Publora は検証前にサーバー側でダウンロードして添付するため、メディアの追加と予約投稿を1回の呼び出しで行えます。下書きの作成後にget_upload_url、続いてcomplete_mediaを呼び出す方法に代わる、1回で完了する方法です。取り込みは1時間あたり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 が返されます。
注:platformSettings は MCP の create_post および update_post ツールでも、REST 経由でも受け付けられます。スキーマは厳密です。プラットフォーム名やキーの入力を間違えると、黙って無視されるのではなく、検証エラーになります。
例
シンプルなチャンネル投稿
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ではありません)。大きな動画は失敗します。
-
ボットに管理者権限が必要です:ボットには
can_post_messages権限を持つ管理者ロールが必要です。接続時に確認され、POST /test-connection/{platformId}の呼び出し時にも再確認されますが、投稿のたびには確認されません。 -
画像と動画の混在はできません:1つの投稿に画像と動画を同時に含めることはできません。
-
キャプションの超過分:メディア付き投稿でキャプションが1,024文字を超えると、切り詰められるのではなく、別の返信メッセージとして送信されます。
ベストプラクティス
コンテンツ
- 書式の使用:見出しを太字にし、強調したい箇所を斜体にすると読みやすくなります
- リンクのプレビュー:記事には便利ですが、告知をすっきり見せるには無効にします
- 絵文字の使用:Telegram では一般的で、よく使われます
- 投稿の長さ:テキストのみのメッセージでは、投稿が長くても不利になりません
投稿のタイミング
- 世界中のオーディエンス:Telegram のユーザーは世界中にいるため、投稿するタイムゾーンを考慮します
- おすすめの時間帯:対象地域の午前 8~10 時、午後 12~2 時、午後 7~9 時
- 投稿頻度:チャンネルでは、より頻繁に投稿できます(1 日 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" | 同じ投稿に画像と動画が含まれています | 1 つの投稿につき、メディアの種類を 1 つにします |