{
  "schemaVersion": "1.0",
  "item": {
    "slug": "publora-facebook",
    "name": "Publora — Facebook",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sergebulaev/publora-facebook",
    "canonicalUrl": "https://clawhub.ai/sergebulaev/publora-facebook",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/publora-facebook",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=publora-facebook",
    "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-facebook"
    },
    "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-facebook",
    "agentPageUrl": "https://openagent3.xyz/skills/publora-facebook/agent",
    "manifestUrl": "https://openagent3.xyz/skills/publora-facebook/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/publora-facebook/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 — Facebook",
        "body": "Facebook 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: facebook-{pageId}\n\nIf you manage multiple Pages, each Page gets its own platform ID."
      },
      {
        "title": "Requirements",
        "body": "A Facebook Page (not a personal profile) connected via OAuth\nPage admin permissions granted during OAuth"
      },
      {
        "title": "Platform Limits (API)",
        "body": "⚠️ API video limits are significantly stricter than native.\n\nPropertyAPI LimitNative AppText63,206 charactersSameImagesUp to 10 × 10 MBJPEG, PNG, GIF, BMP, TIFFVideo45 min / 2 GB240 min / 4 GBReels duration90 seconds90 secondsReels rate limit30 Reels/day/Page—Reels postingPages only (not profiles)—Text only✅ Yes—\n\nCommon errors:\n\nError 1363026 — video over 40 min → trim to under 45 min\nError 1363023 — file over 2 GB → compress\nError 1363128 — Reels duration outside 3–90s range\n\nPosts under 80 characters get 66% more engagement on Facebook."
      },
      {
        "title": "Post a Text Update",
        "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: 'Exciting news from our team! We just launched a new feature. Check it out at publora.com 🎉',\n    platforms: ['facebook-123456789']\n  })\n});"
      },
      {
        "title": "Schedule a Post",
        "body": "body: JSON.stringify({\n  content: 'Your Facebook Page update',\n  platforms: ['facebook-123456789'],\n  scheduledTime: '2026-03-20T13:00:00.000Z'\n})"
      },
      {
        "title": "Post with Image",
        "body": "// Step 1: Create post\nconst post = 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: 'Check out our latest product photo!',\n    platforms: ['facebook-123456789']\n  })\n}).then(r => r.json());\n\n// Step 2: Get upload URL\nconst upload = await fetch('https://api.publora.com/api/v1/get-upload-url', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },\n  body: JSON.stringify({\n    postGroupId: post.postGroupId,\n    fileName: 'photo.jpg',\n    contentType: 'image/jpeg',\n    type: 'image'\n  })\n}).then(r => r.json());\n\n// Step 3: Upload\nawait fetch(upload.uploadUrl, {\n  method: 'PUT',\n  headers: { 'Content-Type': 'image/jpeg' },\n  body: imageBytes\n});"
      },
      {
        "title": "Post a Reel (3–90 seconds)",
        "body": "Use the same flow but upload a short video file. Reels are posted to Pages only."
      },
      {
        "title": "Platform Quirks",
        "body": "Pages only — personal profiles are not supported via the Facebook Graph API\nMultiple pages — each Page has a separate platform ID; connect them individually in Publora dashboard\nVideo limits: 45 min / 2 GB via API (native allows 240 min / 4 GB)\nReels: Must be 3–90 seconds; limited to 30 per day per Page\nCarousels: Up to 10 images or videos (cannot mix in the same carousel)\nRate limit formula: 200 × users/hour"
      }
    ],
    "body": "Publora — Facebook\n\nFacebook 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: facebook-{pageId}\n\nIf you manage multiple Pages, each Page gets its own platform ID.\n\nRequirements\nA Facebook Page (not a personal profile) connected via OAuth\nPage admin permissions granted during OAuth\nPlatform Limits (API)\n\n⚠️ API video limits are significantly stricter than native.\n\nProperty\tAPI Limit\tNative App\nText\t63,206 characters\tSame\nImages\tUp to 10 × 10 MB\tJPEG, PNG, GIF, BMP, TIFF\nVideo\t45 min / 2 GB\t240 min / 4 GB\nReels duration\t90 seconds\t90 seconds\nReels rate limit\t30 Reels/day/Page\t—\nReels posting\tPages only (not profiles)\t—\nText only\t✅ Yes\t—\n\nCommon errors:\n\nError 1363026 — video over 40 min → trim to under 45 min\nError 1363023 — file over 2 GB → compress\nError 1363128 — Reels duration outside 3–90s range\n\nPosts under 80 characters get 66% more engagement on Facebook.\n\nPost a Text Update\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: 'Exciting news from our team! We just launched a new feature. Check it out at publora.com 🎉',\n    platforms: ['facebook-123456789']\n  })\n});\n\nSchedule a Post\nbody: JSON.stringify({\n  content: 'Your Facebook Page update',\n  platforms: ['facebook-123456789'],\n  scheduledTime: '2026-03-20T13:00:00.000Z'\n})\n\nPost with Image\n// Step 1: Create post\nconst post = 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: 'Check out our latest product photo!',\n    platforms: ['facebook-123456789']\n  })\n}).then(r => r.json());\n\n// Step 2: Get upload URL\nconst upload = await fetch('https://api.publora.com/api/v1/get-upload-url', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },\n  body: JSON.stringify({\n    postGroupId: post.postGroupId,\n    fileName: 'photo.jpg',\n    contentType: 'image/jpeg',\n    type: 'image'\n  })\n}).then(r => r.json());\n\n// Step 3: Upload\nawait fetch(upload.uploadUrl, {\n  method: 'PUT',\n  headers: { 'Content-Type': 'image/jpeg' },\n  body: imageBytes\n});\n\nPost a Reel (3–90 seconds)\n\nUse the same flow but upload a short video file. Reels are posted to Pages only.\n\nPlatform Quirks\nPages only — personal profiles are not supported via the Facebook Graph API\nMultiple pages — each Page has a separate platform ID; connect them individually in Publora dashboard\nVideo limits: 45 min / 2 GB via API (native allows 240 min / 4 GB)\nReels: Must be 3–90 seconds; limited to 30 per day per Page\nCarousels: Up to 10 images or videos (cannot mix in the same carousel)\nRate limit formula: 200 × users/hour"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sergebulaev/publora-facebook",
    "publisherUrl": "https://clawhub.ai/sergebulaev/publora-facebook",
    "owner": "sergebulaev",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/publora-facebook",
    "downloadUrl": "https://openagent3.xyz/downloads/publora-facebook",
    "agentUrl": "https://openagent3.xyz/skills/publora-facebook/agent",
    "manifestUrl": "https://openagent3.xyz/skills/publora-facebook/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/publora-facebook/agent.md"
  }
}