You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入Facebook页面Feed异常:部分页面报'Unowned Pages不支持'错

解决Facebook页面Feed嵌入报错:Error: Unowned Facebook Pages are not supported

问题分析

你遇到的报错核心原因有两点:

  • 嵌入代码使用了Facebook旧版/pages/路径+ID的页面链接格式,当前fb-page组件对这种旧格式的支持存在限制,尤其是未认领的页面。
  • 代码中blockquote的链接文本错误(写成了Whistler Blackcomb,与目标页面名称不符),可能加剧解析异常。

另外,报错提示明确说明未被认领的页面不支持嵌入——即使直接访问链接正常,嵌入组件也会做权限校验。

解决方案

1. 替换为新版页面用户名链接

打开目标Facebook页面(比如平谷高原スキー場),查看地址栏最终跳转后的链接,通常格式为https://www.facebook.com/[页面用户名]/,用这个链接替换代码中的data-href、cite和<a>标签的href属性。

修正后的平谷高原スキー場嵌入代码示例:

<div class="fb-page" data-href="https://www.facebook.com/[平谷高原スキー場的用户名]" data-tabs="timeline" data-width="" data-height="" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true">
    <blockquote cite="https://www.facebook.com/[平谷高原スキー場的用户名]" class="fb-xfbml-parse-ignore">
        <a href="https://www.facebook.com/[平谷高原スキー場的用户名]">平谷高原スキー場</a>
    </blockquote>
</div>

2. 确保页面已被认领

如果替换链接后仍报错,需要该Facebook页面的管理员登录Facebook,完成页面认领流程:

  • 进入页面设置,找到「页面信息」或「认领此页面」选项,按照提示完成验证(通常需要企业邮箱、电话或营业执照)。

3. PHP批量处理方案

针对数百个滑雪度假村的链接批量替换,可以用正则匹配旧格式链接,同时结合页面名称修正链接文本:

<?php
// 示例:批量替换旧版Facebook页面链接为新版用户名格式
// 假设你有一个数组存储所有滑雪度假村的信息:页面旧链接、页面名称、页面用户名
$resorts = [
    [
        'old_link' => 'https://www.facebook.com/pages/平谷高原スキー場/166400960115958',
        'name' => '平谷高原スキー場',
        'username' => 'hirayaskiresort' // 替换为实际用户名
    ],
    // 更多度假村信息...
];

foreach ($resorts as $resort) {
    // 生成修正后的嵌入代码
    $embed_code = <<<HTML
<div class="fb-page" data-href="https://www.facebook.com/{$resort['username']}/" data-tabs="timeline" data-width="" data-height="" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true">
    <blockquote cite="https://www.facebook.com/{$resort['username']}/" class="fb-xfbml-parse-ignore">
        <a href="https://www.facebook.com/{$resort['username']}/">{$resort['name']}</a>
    </blockquote>
</div>
HTML;
    // 输出或保存修正后的代码
    echo $embed_code . "\n\n";
}
?>

如果无法提前获取所有页面的用户名,可以调用Facebook Graph API(需申请API密钥)批量获取页面信息,通过页面ID查询username字段:

// 示例:通过Graph API获取页面用户名(需access_token)
$page_id = '166400960115958';
$access_token = '你的API访问令牌';
$response = file_get_contents("https://graph.facebook.com/v18.0/{$page_id}?fields=username&access_token={$access_token}");
$page_data = json_decode($response, true);
$username = $page_data['username'] ?? '';

内容的提问来源于stack exchange,提问作者spreaderman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:13:19