我在https://www.example.com/contest有一个网页,我想为它添加一些Facebook共享功能。
我创建了一个新的Facebook应用程序。在应用程序设置中,我首先使用https://www.example.com
作为域名添加网站平台。然后我将应用程序域添加为www.example.com
我还根据说明将Facebook JS SDK添加到页面中。
我在这个网页上有一些我想成为可共享的图像。我希望人们能够单击自定义“共享”按钮并获取“共享”弹出窗口以共享图像的URL。
我面临的问题是我的图片托管在不同的域(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中执行自定义操作然后他们限制你到你自己的域名?