Facebook共享在与您的应用程序配置不同的域上?

Facebook共享在与您的应用程序配置不同的域上?,facebook,share,Facebook,Share,这是共享按钮的代码: FB.ui({ method: 'share', href: 'http://cheese.com/', }); 我有多个域在重复使用一个应用程序id。我们在登录等方面做了一些变通。但至少我希望共享按钮能正常工作。但这给了我一个经典: 应用程序配置不允许给定URL。示例:一或 应用程序的设置不允许使用更多的给定URL。它必须 匹配网站URL或画布URL,或者域必须是子域 应用程序的一个域的 这个错误是有道理的:我试图在另一个域上共享一些东西。但首先为什么会

这是共享按钮的代码:

FB.ui({
    method: 'share',
    href: 'http://cheese.com/',
});
我有多个域在重复使用一个应用程序id。我们在登录等方面做了一些变通。但至少我希望共享按钮能正常工作。但这给了我一个经典:

应用程序配置不允许给定URL。示例:一或 应用程序的设置不允许使用更多的给定URL。它必须 匹配网站URL或画布URL,或者域必须是子域 应用程序的一个域的

这个错误是有道理的:我试图在另一个域上共享一些东西。但首先为什么会有这种限制呢?有解决办法吗

请注意,“发送链接”对话框不会出现任何问题:

FB.ui({
    method: 'send',
    link: 'http://cheese.com/',
});
共享
发送
有什么不同


当为一个应用程序使用多个域名时,解决方法是什么?

方法共享:
此方法用于在Facebook上公开共享域或子域,或在帖子中指定。这影响了应用程序的宣传。(人们共享链接/URL的效率)。通常应用程序的名称在分享时会产生巨大的影响

methodsend:
用于在Facebook上发送私人消息。这对应用程序的宣传影响不大

我想这样保存是因为

页面上的任何内容可能具有与Facebook应用程序上注册的域不同的链接。而且它只会以私人信息的形式发送,这不会给Facebook带来太多麻烦。但如果它被用作共享,那么它应该有类似的域名或子域,因为这反过来会影响Facebook的声誉。(请记住垃圾邮件发送者。)


所以我觉得,如果域名不同,那么就创建不同的Facebook应用程序

我最后在一个新窗口中使用了旧的
sharer.php
方式

window.open( 'https://www.facebook.com/sharer/sharer.php?u=http://poules.com', 
    'fbShareWindow',       
    'toolbar=no,
     location=no,
     status=no,
     menubar=no,
     scrollbars=yes,
     resizable=yes,
     width=600,
     height=400');

这不是关于
FB.ui
中使用的方法,而是关于JSSDK的初始化。你的应用程序应该主要使用一个域。这似乎是唯一的方法。即使你在Facebook上设置了两个独立的应用程序,它仍然会检查你试图共享的url是否与你所在网站(或子域)的当前url相同,如果不是这样,你会收到一个错误。