故障排除与令牌指南
连接 LinkedIn、Facebook、Instagram 和 YouTube 到 ContentFlows 的分步说明。每个平台都需要 两个值:访问令牌(授予权限)和 ID(要发布到哪个账户 / 页面 / 渠道)。两者都需要粘贴到您的仪表板中。
凭据如何存储
所有四个平台的值都会以一个加密的 JSON blob 形式保存在 AWS Secrets Manager 中,路径为 contentflows/tenants/YOUR_TENANT_ID/social-tokens。机密信息不会被记录,不会在保存后再次显示,并且与您的账户隔离。ContentFlows 从不存储您的社交媒体密码。
ContentFlows 使用 LinkedIn UGC Posts API 代表您发布内容。您需要一个带有 w_member_social 权限作用域的访问令牌,以及帖子应显示在其下的账户 member URN。
ContentFlows 会向您询问的字段
LINKEDIN_ACCESS_TOKEN- OAuth 2.0 访问令牌(有效期 60 天)。以 AQV… 或类似内容开头。
LINKEDIN_AUTHOR_ID- Member URN — 格式类似 urn:li:person:XXXXXXXXXX 或 Company Page 的 urn:li:organization:NNNNNN。
前提条件
- 一个 LinkedIn 账户(个人资料)— 帖子将从该账户发布
- 一个免费的 LinkedIn 开发者账户 — 您在创建应用时会自动创建
分步说明
前往 LinkedIn 开发者门户
填写应用详情
- App name: 任意名称 — 例如 “ContentFlows Publisher”
- LinkedIn page: 您必须关联一个 LinkedIn Company Page。如果您还没有,请先创建一个基础公司主页(免费)。
- App logo: 上传任意方形图片
申请 'Share on LinkedIn' 产品
添加重定向 URI
https://www.linkedin.com/developers/tools/oauth/redirect点击 Update。
生成访问令牌
w_member_social(如果可用,还勾选 r_liteprofile),点击 Request access token,再点击 Allow。复制令牌——它不会再次显示。这就是您的 LINKEDIN_ACCESS_TOKEN。找到您的 Member URN
GET https://api.linkedin.com/v2/userinfo响应中包含
sub — 在其前加上 urn:li:person: 即可形成您的 URN。例如,如果 sub = "ABC123xyz",您的 URN 就是 urn:li:person:ABC123xyz。这就是您的 LINKEDIN_AUTHOR_ID。urn:li:organization:COMPANY_PAGE_NUMERIC_ID——该数字 ID 可在页面管理员 URL 中看到。将两个值粘贴到 ContentFlows
ContentFlows 发布到 Facebook Page(不是个人资料)。您需要一个带有 pages_manage_posts 权限的 Page access token,以及数字形式的 Page ID。
ContentFlows 会向您询问的字段
FB_PAGE_ACCESS_TOKEN- 来自 Meta for Developers 的长期 Page access token(60 天)。
FB_PAGE_ID- 您所管理的 Facebook Page 的数字 ID(例如 123456789012345)。
前提条件
- 一个 Facebook 账户,并且是某个 Facebook Page 的 Admin
- 如果您还没有 Facebook Page,请前往 facebook.com/pages/create 创建一个(免费,耗时 2 分钟)
分步说明
打开 Meta for Developers 门户
选择应用类型并填写详情
添加 Facebook Login 产品
从 Graph API Explorer 获取用户令牌
- 在右上角下拉菜单中选择您的应用
- 点击 Generate Access Token
- 在权限弹窗中,勾选 以下全部:
pages_manage_posts— 发布帖子所必需(最常遗漏的作用域)pages_read_engagementpages_show_listbusiness_managementinstagram_basic— 仅当您计划将此令牌用于 Instagram 时需要instagram_content_publish— 仅当您计划将此令牌用于 Instagram 时需要
- 点击 Generate Access Token 并授权
将用户令牌延长为长期令牌(60 天)
派生 Page access token 和 Page ID
GET /me/accounts → Submit在 JSON 响应中,找到您的 Page。它有两个重要字段:
access_token→ 这就是您的FB_PAGE_ACCESS_TOKEN— 因为它是从长期用户令牌派生的,这个 Page token 永不过期id→ 这就是您的FB_PAGE_ID
将两个值粘贴到 ContentFlows
验证令牌是否具有正确作用域(可选但推荐)
- Type:
PAGE(不是USER— 如果显示 USER,说明您在步骤 6 中复制了错误的令牌) - Expires: Never(如果它显示日期,说明您跳过了步骤 5——在调用
/me/accounts时,用户令牌仍然是短期的) - Scopes: 必须包含
pages_manage_posts。如果缺失,说明您在步骤 4 中没有勾选该项——请从步骤 4 重新开始。
{"error":{"message":"(#200) Permissions error"}},那么令牌通常缺少 pages_manage_posts。请使用调试器(步骤 8)验证,并在需要时重新生成。Instagram 发布使用 Facebook Graph API,因此您的 Instagram 账户必须是已连接到 Facebook Page 的 Professional account(Business 或 Creator)。个人 Instagram 账户不能通过 API 发布。
ContentFlows 会向您询问的字段
IG_ACCESS_TOKEN- 可选 — 留空,ContentFlows 会回退到 FB_PAGE_ACCESS_TOKEN。仅在您有专用 Instagram 令牌时填写。
IG_BUSINESS_ACCOUNT_ID- 与您的 Facebook Page 关联的 Instagram Business Account ID(例如 17841412345678901)。
前提条件
- 一个 Instagram Business 或 Creator 账户(不是个人账户)
- 该 Instagram 账户已连接到您管理的 Facebook Page
- 一个具有
instagram_content_publish权限的 Meta 开发者应用
转换为 Professional 账户(如需要)
在 Instagram 应用中切换账户类型
将 Instagram 连接到您的 Facebook Page
获取 Instagram Business Account ID
打开 Graph API Explorer
instagram_basic, instagram_content_publish, pages_read_engagement, pages_manage_posts找到您的 Instagram Business Account ID
GET /me/accounts。找到您的 Page 并复制其 id。然后运行:GET /{page-id}?fields=instagram_business_account(将
{page-id} 替换为您的 Page ID)。响应中会包含一个 instagram_business_account 对象——复制其中的 id。这就是您的 IG_BUSINESS_ACCOUNT_ID。将这些值粘贴到 ContentFlows
IG_BUSINESS_ACCOUNT_ID。YouTube
ContentFlows 使用 YouTube Data API v3 为您的内容日历生成视频元数据(标题、描述、标签)。您需要来自 Google Cloud Console 的 API key 和您的频道 ID。
ContentFlows 会向您询问的字段
YOUTUBE_API_KEY- 启用了 YouTube Data API v3 的 Google Cloud API key。以 AIza… 开头。
YOUTUBE_CHANNEL_ID- 您的 YouTube channel ID(例如 UCxxxxxxxxxxxxxxxxxxxxxx)。可在 YouTube Studio → Settings → Channel → Advanced settings 中找到。
前提条件
- 一个 Google 账户
- 与该账户关联的 YouTube 频道
- 一个免费的 Google Cloud 项目(您会在第一步中创建)
分步说明
创建 Google Cloud 项目
启用 YouTube Data API v3
创建 API key
YOUTUBE_API_KEY。找到您的 YouTube Channel ID
UC 开头。这就是您的 YOUTUBE_CHANNEL_ID。将两个值粘贴到 ContentFlows
发送域名(DKIM / SPF / DMARC)
默认情况下,通讯从 noreply@contentflows.cc 发出。验证您自己的域名可以提高送达率(减少进入垃圾箱的概率),因为 From 地址会与 DKIM 签名和您可见的品牌保持一致。
前提条件
- 您拥有一个域名(例如
your-business.com)。 - 您可以在域名注册商处创建 DNS 记录(Cloudflare、Route53、GoDaddy、Namecheap 等)。
分步说明
开始流程
your-business.com)→ 点击 Save & show DNS records。复制这 5 条 DNS 记录
- 3 × CNAME(DKIM 令牌)
- 根域上的 1 × TXT(SPF)
- 位于
_dmarc.your-domain.com的 1 × TXT(DMARC)
粘贴到您的 DNS 提供商
abc123._domainkey.your-domain.com)。验证
完成
newsletter@your-domain.com 作为 From 头,并带有 DKIM 签名、SPF 通过和 DMARC 对齐。noreply@contentflows.cc 发件人。导入订阅者
Newsletter 标签中的 + Import 按钮会打开一个包含三个标签页的弹窗:
CSV 上传
上传一个 .csv 文件。系统会自动检测表头行(任何名称中包含 email 的列都会被视为邮箱列;任何包含 name 或 first 的列都会被视为姓名)。无效邮箱地址会被拒绝;重复项会被跳过。在 Import 启用前请勾选同意复选框。
Mailchimp
粘贴您的 Mailchimp API key(格式:abc123...-us21 — 最后一个连字符后的部分是数据中心)以及 Audience ID(Mailchimp Audience 仪表板 → Settings → Audience name and defaults → Audience ID)。ContentFlows 会拉取所有已订阅成员。
ConvertKit
粘贴您的 ConvertKit API key(Settings → Advanced → API Key)。所有已确认的订阅者都会被导入。
常见问题
- Mailchimp 401 Unauthorized — API key 错误,或者账户禁用了它。请在 Mailchimp → Account → Extras → API keys 中重新生成。
- “No valid email addresses” — CSV 解析器未检测到邮箱列。请确认存在表头行,并且有一列的名称明确为
email。 - 导入瞬间完成但添加 0 条 — 每一行都已经在您的列表中了。重新导入时这是正常的。
常见问题
令牌无效或已过期
访问令牌会过期。LinkedIn 令牌有效期约 60 天。当由长期用户令牌派生时,Facebook/Instagram Page 令牌 永不过期(请严格按照 Facebook 部分的步骤操作)。生成一个新令牌并在 Integrations 中更新。
Facebook:发布时出现 (#200) Permissions error
到目前为止,最常见的原因是:Page 令牌缺少 pages_manage_posts 作用域。这个作用域很容易在权限弹窗中遗漏,因为 Graph API Explorer 默认不会启用它。请在 Access Token Debugger 中验证您的令牌——如果 pages_manage_posts 不在 scopes 列表中,请从 Facebook 指南的步骤 4 重新生成令牌,并明确勾选该权限。
LinkedIn:无效的 URN
Member URN 必须以 urn:li:person:(个人资料)或 urn:li:organization:(Company Page)开头,后跟账户的唯一 ID。单独的纯数字或字母数字字符串并不是有效的 URN。
LinkedIn 权限不足
您的 LinkedIn 应用没有批准 Share on LinkedIn 产品,或者生成令牌时没有包含 w_member_social。返回 LinkedIn 指南的步骤 3,然后重新生成令牌。
Facebook:Page ID 错误
Page ID 是 /me/accounts 返回的数字 id 字段,不是 Page URL 中可读的用户名。如果您误填了用户名,帖子将发布失败。
您必须是 Facebook Page 的管理员
生成该令牌的 Facebook 账户并不是目标 Page 的管理员。请让 Page 管理员自己生成令牌,或者让他们在 facebook.com → Page settings → Page roles 中将您添加为管理员。
Instagram:不是 Business 或 Creator 账户
个人 Instagram 账户不能使用 Content Publishing API。请按照上面的转换步骤操作。
Instagram:账户未连接到 Facebook Page
您的 Instagram Professional 账户未连接到 Facebook Page。请前往 Instagram Settings → Account → Linked Accounts → Facebook 完成连接。
YouTube:API 配额超限
YouTube Data API 默认每天有 10,000 units 的配额,这对 ContentFlows 的元数据查询来说绰绰有余。如果您达到上限,很可能是同一个 API key 还在别处使用——请为 ContentFlows 单独创建一个 key。
还是卡住了?
联系支持,并附上错误信息以及您正在连接的平台。请包含您卡住的步骤编号。