使用 Meta Graph API 自动创建并直接发布宣传图片至 Instagram Business 账户,无需第三方排程或付费工具。
Instagram Posting Pipeline.是一项面向实际任务的技能,主要用于End-to-end Instagram 自动化管道.;Genetered 专业宣传图像并自动发布到任何Instagram Business账户——无第三方。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
端到端 Instagram 自动化流水线。自动生成专业宣传图片,并自动发布至任意 Instagram 商务账号——无需依赖第三方自动化工具。
不在范围内:爬取私有/内网资源、外部存储凭证、向第三方共享数据。
指令驱动型能力 —— 所有脚本均已打包在该组件中。除 Python 3.8+ 和 Pillow 外,不依赖任何外部二进制文件、安装程序或运行时依赖。请将 scripts/ 文件夹与该能力并置,并通过配置环境变量启用。
企业信息(名称、详情、网站 URL)
→ scrape_business.py(可选 —— 从网站自动提取)
→ generate_course_promo.py
→ upload_cloudinary.py
→ post_to_instagram.py
→ Instagram 发布链接
scrape_business.py 向用户提供的公开 URL发起请求,提取企业信息(如名称、标语、服务内容、联系方式),用于自动生成宣传内容。
其功能包括:
html.parser 解析 HTML 响应其不执行以下操作:
请勿提供内网/私有 URL(例如
localhost、192.168.x.x、10.x.x.x)。已启用 SSRF 防护机制:DNS 解析校验 + 私有 IP 地址拦截(通过ipaddress模块)、SSL 证书验证、协议/主机名白名单,且所有重定向均显式禁用(不处理任何 3xx 响应的跳转目标)。
使用前,请设置以下环境变量:
# Meta Graph API(必需) export IG_ACCESS_TOKEN="your_page_access_token" export IG_BUSINESS_ACCOUNT_ID="your_ig_business_account_id" export IG_DEFAULT_CAPTION="Your default caption" # Cloudinary(必需 —— 请自行注册免费账户) # 不使用默认凭据 —— 您必须自行配置 export CLOUDINARY_CLOUD_NAME="your_cloud_name" export CLOUDINARY_UPLOAD_PRESET="your_unsigned_preset" export CLOUDINARY_FOLDER="mybusiness" # 图片输出路径(可选) export IG_PIPELINE_OUTPUT_DIR="./output"
您的凭证完全由您掌控。
Cloudinary 安全加固建议: 推荐使用签名上传预设(signed upload presets),或在 Cloudinary 控制台中按文件夹/来源限制非签名预设(unsigned presets)的使用范围。
访问令牌(Access Token):
instagram_content_publish 和 pages_read_engagement 权限)pages_read_engagement 与 instagram_content_publish 权限Instagram 商务账号 ID(IG Business Account ID):
from generate_course_promo import generate_course_promo
path = generate_course_promo(
course_name="Diploma in Artificial Intelligence",
institution="CADDESK Centre",
duration="90 Weeks",
bullets=[
"Machine Learning & Data Science",
"Building Intelligent Systems",
"Algorithm Development",
"Real-World AI Projects",
],
hook_lines=["Your Future in AI", "Starts Here."],
cta_text="Ready to shape the future with AI?",
handle="@caddeskcentre",
output_filename="course_promo.png"
)
命令行方式:
python scripts/generate_course_promo.py
python scripts/upload_cloudinary.py[folder]
返回类似 https://res.cloudinary.com/image/upload/xyz.png 的公开 URL
python scripts/post_to_instagram.py
或以编程方式调用:
from post_to_instagram import post_to_instagram
success, post_id, ig_url = post_to_instagram(
image_url="https://res.cloudinary.com/image/upload/xyz.png",
caption="Your caption with #hashtags"
)
[钩子(HOOK)—— 加粗主张或提问,1–2 行] [价值点(VALUE)—— 用户将学到/达成什么] [行动号召(CTA)—— “链接见主页简介” / “私信报名” / “访问官网”] [8–15 个话题标签(hashtags)—— 广泛类 + 垂直类混合]
| 错误 | 解决方法 |
|---|---|
401 Invalid OAuth |
令牌已过期 —— 请前往 Graph API Explorer 重新生成 |
IG token format error |
请使用 Page Access Token,而非仅适用于 Instagram 的 token |
image_url required |
图片未公开可访问 —— 请先上传至 Cloudinary |
403 Forbidden |
应用未切换至“上线(Live)”模式,或 instagram_content_publish 权限尚未获批 |
Cloudinary 400 |
图片过大(>10MB)、格式不支持,或凭证未正确配置 |
IG account not found |
该账号在 Meta 平台中未设置为商务账号(Business)或创作者账号(Creator)模式 |
| Scrape 返回 None | 网站采用 JavaScript 渲染 —— 请手动提供相关信息 |
如需切换不同 Instagram 账号,请在每次发布前更新环境变量:
export IG_ACCESS_TOKEN="token_for_account_a" export IG_BUSINESS_ACCOUNT_ID="ig_id_account_a" python scripts/post_to_instagram.py