允许1个Facebook应用程序的多个域(如Tumblr)

sti*_*kos 36 html html5 facebook facebook-graph-api facebook-opengraph

我试图通过Facebook对象调试器验证我的网站,我遇到以下错误:

"smallteaser:teaser"类型的网址" 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)
Run Code Online (Sandbox Code Playgroud)

然后,如果您将其与例如域名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">
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*sco 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.


pet*_*hry 17

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

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

example.com必须从以下之一派生:站点URL,移动站点URL,Canvas URL,安全画布URL,页面选项卡URL或安全页面选项卡URL.

example.org必须从以下之一派生:站点URL,移动站点URL,Canvas URL,安全画布URL,页面选项卡URL或安全页面选项卡URL.

一种解决方案是将"页面选项卡URL"设置为example.org上的虚假URL,如下所示:

example.org/myfakepage

您实际上不必使用页面选项卡.这只允许您添加第二个域.

  • 这对我有用!如果我必须通过审核流程,我会对FB会做些什么感到有些紧张 - 我猜这可能会引发危险信号.我想一个解决方法是制作一个真实的虚假页面标签(可以加载和所有内容)供他们查看.当然,我们不会在我们的应用程序中的任何其他位置引用此页面选项卡. (2认同)

CBr*_*roe 13

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

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

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

Facebook当然不希望这个¹ - 因为他们想通过网络赚取他们收集的关于用户和他们的动作的数据(理论上他们可以在每个使用简单按钮的网站上跟踪你) - 他们会是愚蠢的如果他们为每个app开发者提供相同的能力.

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


bru*_*cio 11

您无法添加多个域,除非域仅因扩展名或子域而不同.

在下面的例子,cuponeados不同之处仅由域扩展(.comVS .com.ar),使两者cuponeados.com.arcuponeados.com被允许:

在此输入图像描述

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

  • 请注意,这不是解决方案.我无法添加任何已经完全没有在应用程序设置中的网站网址,它实际上会在保存时出错并告诉您这里使用哪些字段值cna (16认同)
  • 对于localhost,尝试在hosts文件中设置一个解析为127.0.0.1的域(例如dev.mysite.com)并在FB中使用该域. (3认同)
  • 错误!使用您的解决方案,您只能添加一个站点URL,并且必须定义与您站点的URL相同的域.问题是关于一个应用程序的多个域. (3认同)
  • 在某种程度上,此解决方案有效,但请注意它拒绝localhost URL. (2认同)

小智 5

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

其他域必须从以下之一派生:站点URL,移动站点URL,Canvas URL,安全画布URL,页面选项卡URL或安全页面选项卡URL.

odisharkins.tumbler.com不会是一个问题:它会工作正常!

但是,harkinstech.com或odisharkins.com将无法使用.


tat*_*asi -7

    \n
  1. 访问developers.facebook.com。
  2. \n
  3. 单击您的应用程序并编辑设置。
  4. \n
  5. 按以下形式添加域:example.com、example.org、subdomain.example.com(无 http)。
  6. \n
  7. 节省。
  8. \n
\n\n

这\xe2\x80\x99是目前唯一的方法。您可以手动添加域(和子域),也可以\xe2\x80\x99 继续。

\n