36

我正在尝试使用 Facebook 对象调试器验证我的网站,但遇到以下错误:

类型为“smallteaser:teaser”的URL“ http://www.example.com/latest ”中的对象无效,因为指定的应用程序 ID“597566643589666”不允许使用域“www.example.com”。

这个错误非常有意义,因为我不允许 example.com 域特定访问 Facebook 应用程序。但我真的必须这样做吗?

我想要实现的类似于使用自定义域时 Tumblr 的工作方式。例如,网站www.davidslog.com:它具有以下元标记:

<meta property="fb:app_id" content="48119224995" />

   --> This is the Tumblr app ID


<meta property="og:url" content="http://www.davidslog.com/?og=1" />

   --> This is a custom domain which points to a Tumblr blog


<meta property="og:type" content="tumblr-feed:tumblelog" />

   --> This is a custom Tumblr object type (in namespace tumblr-feed)

然后,如果您将其与例如域theartofnotwriting.tumblr.com进行比较,该域具有以下元数据:

<meta property="fb:app_id" content="48119224995">

   --> This is the same Tumblr app ID

<meta property="og:url" content="http://theartofnotwriting.tumblr.com/?og=1">

   --> This is a different domain

<meta property="og:type" content="tumblr-feed:tumblelog">

您可以清楚地看到同一个 Tumblr 应用程序有多个 URL,并且一切都正确验证。

那么为什么这个 Tumblr 页面验证正确而我的却没有呢?如何将 Facebook 应用程序配置为允许在多个域上使用?

4

7 回答 7

18

我遇到了同样的问题。我认为 Tumblr 必须与 Facebook 建立某种合作关系才能获得这种特殊待遇(ip 白名单?特殊 api?)——所以我联系了我在 Facebook 的前合作伙伴代表询问。

我不得不与 Facebook 的一位平台工程师讨论这个问题,但我完全错了。没有什么特别的事情发生。

Tumblr 上运行的所有域都使用单个 app_id 进行验证的原因是 facebook 调试工具仅检查 og_tag 结构的有效性(至少在涉及 app_id 时)。它不验证 app_id 是否与给定域正确关联。

您可以通过在两个不同的域上放置一个带有您的 app_id 的测试页面来测试这一点——它们都将在调试工具中进行验证。

当涉及到实际的 Facebook API 访问时,Tumblr 会在他们的域上做所有事情。当人们在 Tumblr 上使用 Facebook 按钮/等时,通常是通过第三方代理工具(如 ShareThis)或嵌入非 api 按钮。我找不到在 Tumblr 上运行的使用 Facebook API 或 app_id 相关按钮的单个自定义域。如果可以的话,我很想看看。

这不是您想要(或我想要)的答案——但这就是正在发生的事情。Tumblr 的 app_id 出现在所有域中,但实际上仅适用于“.tumblr.com”;Facebook 调试工具实际上并不验证 app_id。

于 2014-06-20T17:58:17.267 回答
17

如何将 Facebook 应用程序配置为允许在多个域上使用?

如果您尝试在应用设置中添加多个域,则会收到如下所示的错误:

example.com必须源自以下之一:站点 URL、移动站点 URL、画布 URL、安全画布 URL、页面选项卡 URL 或安全页面选项卡 URL。

example.org必须源自以下之一:站点 URL、移动站点 URL、画布 URL、安全画布 URL、页面选项卡 URL 或安全页面选项卡 URL。

一种解决方案是将“页面标签 URL”设置为example.org上的假 URL,如下所示:

example.org /myfakepage

您实际上不必为任何事情使用页面选项卡。这仅允许您添加第二个域。

于 2013-12-03T17:47:51.430 回答
13

如何将 facebook 应用程序配置为允许在多个域上使用?

它不能。Facebook 应用程序绑定到一个域(及其子域)。

想象一下,否则会发生什么——有人可以将许多(大)网站添加到一个应用程序中,然后将 JS SDK 嵌入到每个应用程序中,并识别通过“一半互联网”连接到该应用程序的用户……并且从而跟踪他们的(几乎)每一步。

Facebook当然不想要这个¹——因为他们想从他们收集的关于用户和他们在网络上的活动的数据中赚钱(理论上他们可以在每个使用简单的点赞按钮的网站上跟踪你)——他们会很愚蠢如果他们给每个应用程序开发者同样的能力。

¹ 好的,这是我自己的假设。

于 2013-09-01T15:44:43.233 回答
12

您不能添加多个域,除非域仅在扩展名或子域上有所不同。

在下面的示例中,cuponeados仅域扩展名 ( .comvs .com.ar) 不同,因此两者cuponeados.com.arcuponeados.com都是允许的:

在此处输入图像描述

在此处查看此答案:需要在单个 Facebook 应用程序中添加多个域

于 2014-05-09T03:07:06.117 回答
5

Tumbler 这样做的方式是允许其域下的子域使用 *.example.com。这将允许所有子域使用他们的应用程序(如 odisharkins.example.com、facebook.example.com)。添加多个域有某些方面:查看Facebook 博客

其他域必须来自以下之一:站点 URL、移动站点 URL、画布 URL、安全画布 URL、页面选项卡 URL 或安全页面选项卡 URL

odisharkins.tumbler.com 不会有问题:它可以正常工作!

但是,harkinstech.com 或 odisharkins.com 将不起作用。

于 2013-09-06T19:16:40.577 回答
0

为我工作:“诀窍是指定多个应用程序域并使用逗号分隔的有效 URL 列表进行网站 URL 配置。”

https://www.sitepoint.com/community/t/single-facebook-app-with-multiple-domains/99834/4

于 2016-09-09T14:15:09.337 回答
-7
  1. 访问 developer.facebook.com。
  2. 单击您的应用程序并编辑设置。
  3. 以下列形式向其中添加域:example.com、example.org、subdomain.example.com(无 http)。
  4. 节省。

这是目前唯一的办法,在东方。您要么手动添加域(和子域),要么无法继续。

于 2013-09-01T15:24:47.320 回答