运行时依赖
安装命令
点击复制技能文档
社交媒体发布技能 通过统一的社交媒体发布 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"] )
发布工作流 步骤 1:检查连接的账户 首先检查连接的账户: 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}') "
步骤 2:准备内容 Twitter:保持在 280 个字符以内 LinkedIn:可以更长,专业语气 Instagram:需要至少 1 张图片 小红书:使用 xiaohongshu-gtm 技能发布中文内容
步骤 3:执行发布 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(主要提供商) 前往 https://postforme.dev/dashboard 点击“连接账户” 选择平台并授权 通过 LATE(回退提供商) 前往 https://getlate.dev/dashboard 连接社交账户 API 密钥在 .env 文件中会自动检测新账户
错误处理 错误原因 解决方案 “没有连接的账户” 平台未链接 通过提供商仪表板连接 “Instagram 需要媒体” 纯文本发布 添加至少 1 个图片 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 = cli