我试图通过Facebook对象调试器验证我的网站,并且我遇到了以下错误:
类型为网址“http://www.example.com/latest”的对象 'smallteaser:teaser'因域名无效 指定的应用程序ID不允许使用“www.example.com” '597566643589666'。
这个错误非常有意义,因为我没有允许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应用有多个网址,所有内容都可以正确验证。
那么为什么这个Tumblr页面正确验证而我的页面没有?如何配置Facebook应用程序以允许在多个域上使用?
答案 0 :(得分:17)
如何配置Facebook应用程序以允许在多个应用程序上使用 域?
如果您尝试在应用设置中添加多个域,则会出现如下错误:
example.com 必须来自以下网站之一:网站网址,移动网站网址, Canvas URL,Secure Canvas URL,Page Tab URL或Secure Page Tab URL。
example.org 必须来自以下网站之一:网站网址,移动网站网址, Canvas URL,Secure Canvas URL,Page Tab URL或Secure Page Tab URL。
一种解决方案是将“网页标签网址”设置为 example.org 上的虚假网址,如下所示:
<强> example.org 强> / myfakepage
您实际上不必使用页面选项卡。这只是允许您添加第二个域。
答案 1 :(得分:17)
我遇到了同样的问题。我认为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出现在所有域名中,但实际上只适用于&#34; .tumblr.com&#34 ;; Facebook调试工具实际上并没有验证app_id。
答案 2 :(得分:13)
如何配置Facebook应用以允许在多个域上使用?
它不能。 Facebook应用程序与一个域(及其子域)绑定。
想象一下否则会发生什么 - 有人可以在一个应用程序中添加大量(大)网站,然后f.e.将JS SDK嵌入其中,并识别通过“一半互联网”连接到该应用程序的用户......从而跟踪他们(几乎)每一步。
Facebook当然不希望这个¹ - 因为他们希望通过网络赚取他们收集的关于用户及其动作的数据(理论上他们可以在每个使用的网站上跟踪你一个简单的按钮) - 如果他们为每个应用程序开发人员提供相同的能力,他们将是愚蠢的。
¹好的,这是我自己的假设。
答案 3 :(得分:11)
您不能添加多个域,除非域仅因扩展名或子域而不同。
在下面的示例中,cuponeados
仅因域名扩展(.com
与.com.ar
)而有所不同,因此允许cuponeados.com.ar
和cuponeados.com
:
请在此处查看此答案:Need to add multiple domains in a single Facebook Application
答案 4 :(得分:5)
Tumbler这样做的方法是使用* .example.com允许其域下的子域。这将允许所有子域使用他们的应用程序(如odisharkins.example.com,facebook.example.com)。添加多个域有一些方面:查看Facebook Blog。
其他域必须来自以下之一:网站网址,移动网站网址,画布网址,安全画布网址,网页标签网址或安全网页标签网址。
odisharkins.tumbler.com不会是一个问题:它会工作正常!
然而,harkinstech.com或odisharkins.com将无效。
答案 5 :(得分:0)
为我工作:&#34;诀窍是指定多个应用领域,并使用逗号分隔的有效网址列表进行网站网址配置。&#34;
https://www.sitepoint.com/community/t/single-facebook-app-with-multiple-domains/99834/4
答案 6 :(得分:-7)
这是唯一的方法,目前在东方。您可以手动添加域(和子域),也可以不继续。