360 Secure SkillHub
360 安全技能中心

ThreadClaw FastAPI (Queue + Publish)

通过 HTTP 调用用户自建的 FastAPI 后端,把文本或图片内容生成、排队、定时或发布到 Threads。发布接口需提交 X-Queue-Secret 请求头,助手接口可带 execute_tools 触发图片生成;媒体存储与第三方凭据由后端处理。

outibricoutilage-dotcom
outibricoutilage-dotcom
热度 35.86
最近更新 2026-05-11 17:27:20
分类:营销依赖:第三方 API应用场景:社交媒体 / API 集成 / 图像生成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add threads-fastapi
Metadata
name
threads_fastapi
description
Call the user's FastAPI backend to queue/generate/publish Threads posts.

Threads FastAPI skill

Use this skill whenever the user asks to generate, queue, schedule, or publish content to Threads.

Required environment variables (on the Gateway host)

  • THREADS_FASTAPI_BASE_URL (example: http://127.0.0.1:8000)
  • THREADS_QUEUE_SECRET (the value to send as X-Queue-Secret, only for /threads/publish)
  • Optional: THREADS_TENANT_ID (default: agency_paris)

If these are missing, ask the user for the correct values.

Storage options (backend-side)

This skill does not store media itself. Storage is handled by the FastAPI backend.

Local Pack (demo / single machine)

Set on the backend:

STORAGE_PROVIDER=local
UPLOADS_DIR=uploads
UPLOADS_PATH=/uploads

This stores uploads in UPLOADS_DIR and serves them from UPLOADS_PATH.

Cloud storage (prod)

Set STORAGE_PROVIDER=cloudinary or s3 on the backend and configure the provider credentials there.

Endpoints (per your spec)

  • POST {BASE}/api/v1/threads/publish
    • Requires header X-Queue-Secret
  • POST {BASE}/api/v1/assistant/chat
    • No queue secret header (unless your backend requires it later)

Both accept JSON.

How to call (safe)

Use the HTTP tool in OpenClaw (not exec).
Send JSON directly to the FastAPI endpoint with the required headers.

Example:

  • URL: {BASE}/api/v1/threads/publish
  • Method: POST
  • Headers: X-Queue-Secret: <THREADS_QUEUE_SECRET>
  • Body: JSON payload (see below)

Payloads

A) Publish / enqueue Threads post

Call POST {BASE}/api/v1/threads/publish with:

{
  "message": "<message text>",
  "images": [],
  "scheduled_at": null,
  "publish_mode": "queue",
  "auto_proxy_images": true,
  "meta": {
    "tenant_id": "agency_paris",
    "source": "telegram",
    "chat_id": "<tg chat id>",
    "user_id": "<tg user id>",
    "username": "<tg username>"
  }
}

B) /postimg generate+enqueue via assistant

Call POST {BASE}/api/v1/assistant/chat with:

{
  "session_id": "tg_<chat id>",
  "execute_tools": true,
  "message": "Generate and enqueue one image post",
  "context": {
    "tenant_id": "agency_paris",
    "prompt": "<tg args>",
    "message": "<tg args>",
    "provider": "replicate",
    "model": "black-forest-labs/flux-1.1-pro",
    "source": "telegram",
    "campaign": "remote_demo",
    "api_base_url": "http://127.0.0.1:8000"
  }
}

Note: The skill should fill tenant_id from THREADS_TENANT_ID when set.

Safety

  • Never forward secrets from chat into shell commands except as the -QueueSecret argument.
  • Do not log the secret.
  • Validate that BaseUrl is an http(s) URL.