{
  "schemaVersion": "1.0",
  "item": {
    "slug": "publora-telegram",
    "name": "Publora — Telegram",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sergebulaev/publora-telegram",
    "canonicalUrl": "https://clawhub.ai/sergebulaev/publora-telegram",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/publora-telegram",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=publora-telegram",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/publora-telegram"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/publora-telegram",
    "agentPageUrl": "https://openagent3.xyz/skills/publora-telegram/agent",
    "manifestUrl": "https://openagent3.xyz/skills/publora-telegram/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/publora-telegram/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Publora — Telegram",
        "body": "Telegram platform skill for the Publora API. For auth, core scheduling, media upload, and workspace/webhook docs, see the publora core skill.\n\nBase URL: https://api.publora.com/api/v1\nHeader: x-publora-key: sk_YOUR_KEY\nPlatform ID format: telegram-{chatId}"
      },
      {
        "title": "Requirements",
        "body": "Create a bot via @BotFather on Telegram\nCopy the bot token\nAdd the bot as an administrator of your target channel or group\nConnect via Publora dashboard using the bot token + channel name"
      },
      {
        "title": "Platform Limits (API — Bot API)",
        "body": "⚠️ Telegram Bot API has a strict 50 MB file limit (not the 4 GB that user clients allow).\n\nPropertyBot API LimitUser ClientText (message)4,096 charactersSameMedia caption1,024 characters ⚠️4,096 (Premium)ImagesUp to 10 × 10 MBJPEG, PNG, GIF, WebP, BMPVideo50 MB ⚠️4 GBVideo formatsMP4, MOV, AVI, MKV, WebM—Text only✅ Yes—Rate limit30 messages/sec20 messages/min per group\n\nCommon errors:\n\nMEDIA_CAPTION_TOO_LONG — caption exceeds 1,024 chars → reduce or move text to message body\nBad Request: file is too big — file exceeds 50 MB → compress or use a smaller file"
      },
      {
        "title": "Post a Text Message",
        "body": "await fetch('https://api.publora.com/api/v1/create-post', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },\n  body: JSON.stringify({\n    content: '📢 **Announcement**: Our new feature is live! Check it out at publora.com\\n\\n#update #publora',\n    platforms: ['telegram--1001234567890']  // note: group chat IDs are negative\n  })\n});\n\nMarkdown formatting is supported in Telegram messages."
      },
      {
        "title": "Schedule a Message",
        "body": "body: JSON.stringify({\n  content: 'Your Telegram channel message here',\n  platforms: ['telegram--1001234567890'],\n  scheduledTime: '2026-03-20T09:00:00.000Z'\n})"
      },
      {
        "title": "Send an Image",
        "body": "import requests\n\nHEADERS = { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' }\n\n# Step 1: Create post (content = caption, max 1,024 chars for media)\npost = requests.post('https://api.publora.com/api/v1/create-post', headers=HEADERS, json={\n    'content': 'Check out our latest update! 🚀',   # keep under 1,024 chars when attaching media\n    'platforms': ['telegram--1001234567890']\n}).json()\n\n# Step 2: Get upload URL (max 10 MB per image)\nupload = requests.post('https://api.publora.com/api/v1/get-upload-url', headers=HEADERS, json={\n    'postGroupId': post['postGroupId'],\n    'fileName': 'image.jpg',\n    'contentType': 'image/jpeg',\n    'type': 'image'\n}).json()\n\n# Step 3: Upload\nwith open('image.jpg', 'rb') as f:\n    requests.put(upload['uploadUrl'], headers={'Content-Type': 'image/jpeg'}, data=f)"
      },
      {
        "title": "Send a Video (max 50 MB)",
        "body": "Same flow as image but use contentType: 'video/mp4' and type: 'video'. Keep the file under 50 MB."
      },
      {
        "title": "Platform Quirks",
        "body": "Bot API file limit is 50 MB — not 4 GB like Telegram user clients. For larger files, you'd need a Local Bot API Server (not supported by Publora)\nCaption vs message body: When attaching media, content becomes the caption (max 1,024 chars). For text-only posts, content can be up to 4,096 chars.\nMarkdown supported: Use **bold**, _italic_, `code`, [link](url) in message content\nGroup chat IDs are negative: e.g. telegram--1001234567890\nBot must be admin: The bot needs admin permissions to post in channels; in groups, it needs at least \"Send messages\" permission\nRate limit: 30 messages/second globally; 20 messages/minute per group — Publora handles queuing automatically"
      }
    ],
    "body": "Publora — Telegram\n\nTelegram platform skill for the Publora API. For auth, core scheduling, media upload, and workspace/webhook docs, see the publora core skill.\n\nBase URL: https://api.publora.com/api/v1\nHeader: x-publora-key: sk_YOUR_KEY\nPlatform ID format: telegram-{chatId}\n\nRequirements\nCreate a bot via @BotFather on Telegram\nCopy the bot token\nAdd the bot as an administrator of your target channel or group\nConnect via Publora dashboard using the bot token + channel name\nPlatform Limits (API — Bot API)\n\n⚠️ Telegram Bot API has a strict 50 MB file limit (not the 4 GB that user clients allow).\n\nProperty\tBot API Limit\tUser Client\nText (message)\t4,096 characters\tSame\nMedia caption\t1,024 characters ⚠️\t4,096 (Premium)\nImages\tUp to 10 × 10 MB\tJPEG, PNG, GIF, WebP, BMP\nVideo\t50 MB ⚠️\t4 GB\nVideo formats\tMP4, MOV, AVI, MKV, WebM\t—\nText only\t✅ Yes\t—\nRate limit\t30 messages/sec\t20 messages/min per group\n\nCommon errors:\n\nMEDIA_CAPTION_TOO_LONG — caption exceeds 1,024 chars → reduce or move text to message body\nBad Request: file is too big — file exceeds 50 MB → compress or use a smaller file\nPost a Text Message\nawait fetch('https://api.publora.com/api/v1/create-post', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },\n  body: JSON.stringify({\n    content: '📢 **Announcement**: Our new feature is live! Check it out at publora.com\\n\\n#update #publora',\n    platforms: ['telegram--1001234567890']  // note: group chat IDs are negative\n  })\n});\n\n\nMarkdown formatting is supported in Telegram messages.\n\nSchedule a Message\nbody: JSON.stringify({\n  content: 'Your Telegram channel message here',\n  platforms: ['telegram--1001234567890'],\n  scheduledTime: '2026-03-20T09:00:00.000Z'\n})\n\nSend an Image\nimport requests\n\nHEADERS = { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' }\n\n# Step 1: Create post (content = caption, max 1,024 chars for media)\npost = requests.post('https://api.publora.com/api/v1/create-post', headers=HEADERS, json={\n    'content': 'Check out our latest update! 🚀',   # keep under 1,024 chars when attaching media\n    'platforms': ['telegram--1001234567890']\n}).json()\n\n# Step 2: Get upload URL (max 10 MB per image)\nupload = requests.post('https://api.publora.com/api/v1/get-upload-url', headers=HEADERS, json={\n    'postGroupId': post['postGroupId'],\n    'fileName': 'image.jpg',\n    'contentType': 'image/jpeg',\n    'type': 'image'\n}).json()\n\n# Step 3: Upload\nwith open('image.jpg', 'rb') as f:\n    requests.put(upload['uploadUrl'], headers={'Content-Type': 'image/jpeg'}, data=f)\n\nSend a Video (max 50 MB)\n\nSame flow as image but use contentType: 'video/mp4' and type: 'video'. Keep the file under 50 MB.\n\nPlatform Quirks\nBot API file limit is 50 MB — not 4 GB like Telegram user clients. For larger files, you'd need a Local Bot API Server (not supported by Publora)\nCaption vs message body: When attaching media, content becomes the caption (max 1,024 chars). For text-only posts, content can be up to 4,096 chars.\nMarkdown supported: Use **bold**, _italic_, `code`, [link](url) in message content\nGroup chat IDs are negative: e.g. telegram--1001234567890\nBot must be admin: The bot needs admin permissions to post in channels; in groups, it needs at least \"Send messages\" permission\nRate limit: 30 messages/second globally; 20 messages/minute per group — Publora handles queuing automatically"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sergebulaev/publora-telegram",
    "publisherUrl": "https://clawhub.ai/sergebulaev/publora-telegram",
    "owner": "sergebulaev",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/publora-telegram",
    "downloadUrl": "https://openagent3.xyz/downloads/publora-telegram",
    "agentUrl": "https://openagent3.xyz/skills/publora-telegram/agent",
    "manifestUrl": "https://openagent3.xyz/skills/publora-telegram/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/publora-telegram/agent.md"
  }
}