用途
该技能面向需要与社交媒体平台 API 集成的开发场景,帮助构建可靠的内容自动分发系统,实现自动发布、定时调度、分析数据获取和内容同步。
主要能力
平台 API 概览
技能整理了多个平台的 API 风格、认证方式、速率限制和关键约束:
- Bluesky:AT Protocol,App password / OAuth,3000/5min,去中心化开放协议
- Mastodon:REST,OAuth 2.0,300/5min per IP,端点因实例而异
- LinkedIn:REST,OAuth 2.0,100/day posts,内容政策严格
- Dev.to:REST,API Key,30/30s,以文章为中心
- Medium:REST,OAuth 2.0 + Bearer,100/day,仅支持 Import API
- RSS:拉取式,无需认证,只读同步
认证模式
提供 OAuth 2.0 流程(LinkedIn、Mastodon)和 API Key 认证(Dev.to、Bluesky)的代码示例。OAuth 示例使用 authlib 的 AsyncOAuth2Client 创建授权 URL 并交换令牌;API Key 示例使用 httpx 构建带 api-key 请求头的异步客户端。
多平台发布
采用内容适配器模式(PlatformAdapter 抽象基类),为每个平台实现 publish 和 format_content 方法。示例包含 BlueskyAdapter(300 字符限制)和 MastodonAdapter(500 字符默认限制)。ContentDistributor 编排器负责向多个平台分发内容,并对每个平台单独处理异常。
速率限制
提供客户端速率限制器(RateLimiter),基于滑动窗口记录请求时间戳,超出限制时自动等待。另提供 api_call_with_retry 函数,在收到 429 状态码时读取 Retry-After 头并重试,最多重试 3 次。
调度
PostScheduler 类维护按发布时间排序的队列,run 方法循环检查队首任务,到达发布时间后调用分发器执行。
分析数据获取
定义 PostMetrics 数据类(views、likes、shares、comments、clicks),aggregate_metrics 函数遍历各平台 URL 并调用适配器的 get_metrics 方法聚合指标。
反模式
技能列出常见错误:各平台发布完全相同内容、忽略速率限制、在代码中存储令牌、发布失败无错误处理、同步多平台发布、硬编码平台 URL。
使用方式
该技能以代码示例和模式说明的形式提供,开发者可参考其中的认证流程、适配器模式、限流器、重试逻辑和调度器实现,将其集成到自己的项目中。示例使用 Python 编写,依赖 authlib 和 httpx 库。
适用场景
- 需要向多个社交平台自动发布内容的系统
- 需要定时调度发布的场景
- 需要聚合各平台分析数据的场景
- 需要处理 OAuth 认证和速率限制的集成项目
限制
资料未提供具体的安装命令、包管理方式、完整项目结构或部署说明。各平台 API 的实际端点、字段和限制可能随平台政策变化,需以官方文档为准。