问题描述
我有一个网络应用程序,它在每个活动的基础上使用 Facebook 发送按钮,我们在大约 4 周前使用了如下所述的功能。
完整的复制示例在这里:
<html>
<head>
<title>Your Website Title</title>
<!-- You can use open graph tags to customize link previews.
Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
<Meta property="og:url" content="https://managedhosting.partners/fb.html" />
<Meta property="og:type" content="website" />
<Meta property="og:title" content="Your Website Title" />
<Meta property="og:description" content="Your description" />
<Meta property="og:image" content="https://managedhosting.partners/wp-content/uploads/2020/07/engineering.png" />
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '474334713680098',autoLogAppEvents : true,xfbml : true,version : 'v10.0'
});
};
function fb(){
FB.ui({
method: 'send',link: 'https://comp.aquila.com.au/',});
}
</script>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>
<a href="#" onclick="fb();">click</a>
</body>
</html>
虽然起初这有点不赞成,因为我们使用的是 SDK 的 v2.11,但它也可以在 v10.0 SDK 中重现。我还在 4 周前启用了我们的广告系列页面,显示了相同的行为。
我已确保我们的 Facebook 应用程序已上线,并且我还在一个新帐户中创建了一个应用程序,以确保它与该帐户无关。
解决方法
Facebook UI 调用现在似乎需要一个回调函数,这可以在 examples 中看到,但最初没有显示在 quickstart page 中
完整的工作代码示例变为:
<html>
<head>
<title>Your Website Title</title>
<!-- You can use open graph tags to customize link previews.
Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
<meta property="og:url" content="https://managedhosting.partners/fb.html" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Your Website Title" />
<meta property="og:description" content="Your description" />
<meta property="og:image" content="https://managedhosting.partners/wp-content/uploads/2020/07/engineering.png" />
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '474334713680098',autoLogAppEvents : true,xfbml : true,version : 'v10.0'
});
};
function fb(){
FB.ui({
method: 'send',link: 'https://comp.aquila.com.au/',},function(response){}) //<!-------------
);
}
</script>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>
<a href="#" onclick="fb();">click</a>
</body>
</html>