Phy Social Post

通过统一API实现跨平台社交内容自动发布,支持Twitter、LinkedIn等主流平台。

已扫描
适合谁
数字营销人员、自媒体运营者
不适合谁
无网络环境使用者、无需多平台发布的个人用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @phy041/phy-social-post

Skill 说明

命令、参数、文件名以原文为准

社交媒体发布技能

通过统一的社交发布 API 向多个社交平台发布内容,并支持自动提供方回退。


设置

位置: [your-project-root]/social-posting-api/

环境配置:

cd [your-project-root]/social-posting-api
source venv/bin/activate

**.env 文件中需要的环境变量:**

  • POSTFORME_API_KEY - 主要提供方(PostForMe)
  • LATE_API_KEY - 备用提供方(LATE)

快速命令

检查已连接账户

from social_posting import SocialPostingClient
from dotenv import load_dotenv
load_dotenv()

client = SocialPostingClient()
print("提供方:", client.available_providers)
for acc in client.get_accounts():
    print(f"  {acc.platform}: {acc.username}")

发布纯文本内容

result = client.post(
    content="你的发布内容在这里",
    platforms=["twitter", "linkedin"]
)
print(f"成功: {result.success}, 提供方: {result.provider}")

发布带图片的内容

result = client.post(
    content="看看这些照片!",
    platforms=["instagram"],
    media_urls=[
        "https://example.com/image1.jpg",
        "https://example.com/image2.jpg"
    ]
)

定时发布

from datetime import datetime

result = client.post(
    content="定时发布的帖子",
    platforms=["linkedin"],
    scheduled_for=datetime(2025, 1, 15, 9, 0)  # UTC 时间
)

支持的平台

平台仅文本带媒体说明
Twitter/X最大 280 字符
LinkedIn适合专业内容
Instagram必须包含媒体
Facebook
TikTok推荐视频内容
Threads
Bluesky
Pinterest需要媒体
YouTube仅支持视频

完整发布脚本

#!/usr/bin/env python
"""向社交媒体平台发布内容。"""

import sys
sys.path.insert(0, '[your-project-root]/social-posting-api')

from social_posting import SocialPostingClient
from dotenv import load_dotenv
load_dotenv('[your-project-root]/social-posting-api/.env')

def post_to_social(content: str, platforms: list, media_urls: list = None):
    """向指定平台发布内容。"""
    client = SocialPostingClient()

    # 检查哪些平台已连接
    accounts = client.get_accounts()
    connected = [a.platform for a in accounts]

    # 过滤为仅已连接的平台
    valid_platforms = [p for p in platforms if p in connected]

    if not valid_platforms:
        print(f"未连接以下平台: {platforms}")
        print(f"已连接: {connected}")
        return None

    # 执行发布
    result = client.post(
        content=content,
        platforms=valid_platforms,
        media_urls=media_urls
    )

    if result.success:
        print(f"通过 {result.provider} 发布")
        print(f"   发布 ID: {result.post_id}")
    else:
        print(f"失败: {result.error}")

    return result

# 示例用法
if __name__ == "__main__":
    post_to_social(
        content="来自社交发布 API 的问候!",
        platforms=["instagram"],
        media_urls=["https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1080"]
    )

发布工作流程

第一步:检查已连接账户

始终先确认已连接的账户:

cd [your-project-root]/social-posting-api
source venv/bin/activate && python -c "
from social_posting import SocialPostingClient
from dotenv import load_dotenv
load_dotenv()
client = SocialPostingClient()
for acc in client.get_accounts():
    print(f'{acc.platform}: {acc.username}')
"

第二步:准备内容

  • Twitter:保持在 280 字符以内
  • LinkedIn:可更长,建议使用专业语气
  • Instagram:至少需要一张图片
  • 小红书:请使用 xiaohongshu-gtm 技能处理中文内容

第三步:执行发布

source venv/bin/activate && python -c "
from social_posting import SocialPostingClient
from dotenv import load_dotenv
load_dotenv()

client = SocialPostingClient()
result = client.post(
    content='''你的内容在这里''',
    platforms=['platform1', 'platform2'],
    media_urls=['https://example.com/image.jpg']  # 可选
)
print(f'成功: {result.success}')
print(f'提供方: {result.provider}')
print(f'发布 ID: {result.post_id}')
"

连接新账户

如需连接 Twitter 或其他平台:

通过 PostForMe(主提供方)

  1. 访问 https://postforme.dev/dashboard
  2. 点击“连接账户”
  3. 选择平台并完成授权

通过 LATE(备用提供方)

  1. 访问 https://getlate.dev/dashboard
  2. 连接社交账户
  3. .env 中的 API 密钥将自动识别新账户

错误处理

错误原因解决方案
“无已连接账户”平台未关联通过提供方控制台进行连接
“Instagram 需要媒体”发布了纯文本添加至少一个图片 URL
“HTTP 401”API 密钥无效检查 .env 文件中的密钥
“所有提供方均失败”两个提供方均不可用稍后重试

跨平台发布策略

适用于开源项目公告:

# 发布到开发者相关平台
result = client.post(
    content="刚刚开源了我的多提供方社交发布 API!\n\n功能特点:\n- 自动在提供方间回退\n- 支持 9+ 个平台\n- 简单的 Python 接口\n\nGitHub: https://github.com/[your-username]/social-posting-api",
    platforms=["twitter", "linkedin"]
)

适用于视觉内容:

# Instagram 图片轮播
result = client.post(
    content="打造 [你的产品] 的幕后花絮",
    platforms=["instagram"],
    media_urls=[
        "https://example.com/image1.jpg",
        "https://example.com/image2.jpg",
        "https://example.com/image3.jpg"
    ]
)

作者

[Canlah AI](https://canlah.ai) — 在不破坏品牌调性的前提下,实现高效性能营销。

  • GitHub: [github.com/PHY041](https://github.com/PHY041)
  • 所有技能: [clawhub.ai/PHY041](https://clawhub.ai/PHY041)
P
@phy041

已收录 1 个 Skill

相关推荐