FB.ui共享对话框:“此URL的域未包含在应用程序的域中”

时间:2018-05-05 08:11:14

标签: angular facebook facebook-javascript-sdk

我尝试使用Facebook javascript sdk实现共享对话框。当我打开对话框时,我收到一个错误,即该URL的域未包含在应用程序的域中。

我试图在我的Facebook开发者控制台中添加所有域和所有子域,在“Facebook登录 - 有效的OAuth”中,但是可能因为我尝试使用共享对话框,这些域应该添加到其他地方?

注意:我的应用程序实现了Facebook登录,我可以确认我没有遇到此流程的任何问题,域名对于登录是正确的,登录工作正常。

我的代码:

FB.ui({
   app_id: 'XXXXXXXXXXX',
   method: 'share',
   href: 'https://something.com'
}, (response: any) => {
   console.log(response);
   });

The error popup

更新

在英语中,我面临的错误消息

  

应用程序配置不允许使用URL:一个或多个   应用程序的设置不允许使用给定的URL。它必须匹配   网站URL或Canvas URL,或域必须是子域   App的一个域名。

有趣的是,在我的Facebook开发者控制台中,我有6个不同的URL允许作为OAuth重定向。我试图将所有这些参数指定为redirect_uri参数,并且其中两个参与共享但其他四个参与者失败了?!! ??!

OAuth允许网址(按此顺序)>分享结果

 https://mymaindomain.com/ > Share ok
 https://mymaindomain.com/something/ > Share ok
 https://mystaging.com/ > Share KO
 https://mystaging.com/something/ > Share KO
 https://m.mystaging.com/ > Share KO
 https://m.mymaindomain.com/ > Share KO

2 个答案:

答案 0 :(得分:2)

我有同样的问题,但我已解决。

我的解决方案:

  1. 打开Facebook APP。
  2. 设置->基本
  3. 设置应用程序域[something.com]
  4. 设置网站->网站网址-> [https://something.com]

答案 1 :(得分:0)

对此,我从未找到解决方案,所以我选择了“发送”选项而不是“共享”,这似乎更可靠

 FB.ui({
      method: 'send',
      link: 'https://something.com',
      app_id: XXXXXXXXXXX'
 }, (response: any) => {
      console.log(response);
 });