如何使用FBUi在不同的域上共享对话框URL?

时间:2017-06-22 20:21:21

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我在https://www.example.com/contest有一个网页,我想为它添加一些Facebook共享功能。

  1. 我创建了一个新的Facebook应用程序。在应用程序设置中,我首先使用https://www.example.com作为域名添加网站平台。然后我将应用程序域添加为www.example.com

  2. 我还根据说明将Facebook JS SDK添加到页面中。

  3. 我在这个网页上有一些我想成为可共享的图像。我希望人们能够单击自定义“共享”按钮并获取“共享”弹出窗口以共享图像的URL。

  4. 我面临的问题是我的图片托管在不同的域(Cloudinary.com)上。我使用以下JavaScript来实例化共享弹出窗口:

    FB.ui({
      method: 'share',
      href: 'http://res.cloudinary.com/myaccount/some/path/to/image.jpg',
    }, function(response){});
    

    当我这样做时,我在共享弹出窗口中收到错误:

      

    无法加载网址:此网址的域名未包含在应用中   域。要加载此网址,请添加所有域和子域   应用程序设置中的应用程序域字段。

    但在我的应用设置中,我无法将res.cloudinary.com添加到“App Domains”,因为我收到以下错误:

      

    应用领域必须与Facebook网页游戏网址相匹配   (https),移动站点URL,Unity二进制URL,站点URL或安全页面   标签网址。请更正以下域名:res.cloudinary.com

    那我该怎么办? Facebook是否只允许您共享与Facebook App域名完全相同的域名?考虑到现在有多少人使用子域,第三方解决方案(imgix,Cloudinary等)来托管资产,这似乎太严格了。也许我对这件事情有些误解。

    为什么任何人都可以使用简单的共享按钮配置程序:(https://developers.facebook.com/docs/plugins/share-button)为任何域上的任何URL创建共享按钮,但是如果您尝试在Facebook App中执行自定义操作然后他们限制你到你自己的域名?

0 个答案:

没有答案