【发布时间】:2015-10-16 18:56:56
【问题描述】:
我已经修改了 xdamman 出色的选择共享 JQuery 库 (https://github.com/xdamman/selection-sharer) 以使用 FB.ui 而不是 facebook 的 /dialog/feed 小部件。这是因为 /dialog/feed 小部件和 /sharer/sharer.php 小部件都无法控制共享链接的链接摘要。所以我使用了以下代码:
FB.ui(
{
method: 'feed',
name: name, // (e.g. "Interesting News Item")
link: self.url2share, // (the current URL as determined by window.location.href, e.g. "https://www.commonspace.scot/articles/2688/poll-snp-support-surges-further-with-months-to-go-before-scottish-elections")
picture: picture, // (e.g. "https://www.commonspace.scot/public/artarticle/a3/41/4162_6493.jpg?c=64a2);%20?%3E")
caption: 'commonspace.scot',
description: text // (arbitrary text string)
},
function(response) {
if (response && response.post_id) {
//alert('Post was published.');
} else {
//alert('Post was not published.');
}
}
);
FB.ui 是这样初始化的:
window.fbAsyncInit = function() {
FB.init({
appId : '1011782388842782',
xfbml : true,
version : 'v2.4'
});
};
现在这是真正的关键——上面的代码在https://dev.commonspace.scot 的开发服务器上运行时很好,但错误“发生错误。请稍后再试”。每当在主服务器上共享时都会遇到。
我尝试过的事情:
-
将上述代码替换为 facebook 网站上的以下演示代码:
FB.ui( { method: 'share', href: 'https://developers.facebook.com/docs/', }, // callback function(response) { if (response && !response.error_message) { alert('Posting completed.'); } else { alert('Error while posting.'); } } );遇到错误:“此应用处于演示模式,您无权查看。”
用预定义的虚拟文本替换所有动态生成的字符串(名称、link2share、图片、描述)。遇到错误:“应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是其中之一的子域应用程序的域。”
-
添加
redirect_uri: 'https://www.commonspace.scot',
作为 FB.ui 的参数。结果:“发生错误。请稍后再试。”
已为应用指定了以下重要设置:
- 应用处于发布模式(他们已删除“沙盒”问题)
-
应用 ID 使用元标记设置:
<meta property="fb:app_id" content="1011782388842782" />
...共享库知道应用 ID。
- 已为应用设置了显示名称和联系电子邮件。
- 已指定三个应用程序域:commonspace.scot、dev.commonspace.scot、www.commonspace.scot;虽然我也尝试过只使用一个域 (commonspace.scot)。
- 网站网址设置为“https://www.commonspace.scot/”。
重要提示:这些错误相当普遍,并且在大部分 Facebook SDK 中都会显示。到目前为止,我看到的大多数答案,包括在 stackoverflow 上,都与 SDK 的其他部分有关,例如OAuth 特别常见于这些特定错误。我不清楚那里适用的答案如何(如果有的话)适用于此。我尝试了各种这样的解决方案,但不清楚,要选择一个特定的,“回调 URI/URL”在这种情况下意味着什么,或者它是否有帮助。此问题仅与共享者对话框有关。
提前谢谢你。
【问题讨论】:
标签: facebook-sharer fb.ui