我的Send-to-messenger插件未出现在我的网站上。 这是我的配置:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxx',
autoLogAppEvents : true,
xfbml : true,
version : 'v3.0'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-send-to-messenger"
messenger_app_id="xxxxx"
page_id="vvvvv"
color="blue"
size="large">
</div>
此代码在此页面上生成的html:https://www.weekendr.eu/bonsplans似乎没问题,但按钮仍然无法显示。
可能会有所帮助的一些因素:
谢谢!
答案 0 :(得分:2)
我可以看到您的代码,发现您缺少订阅事件。
FB.Event.subscribe('send_to_messenger', function(e) {
// callback for events triggered by the plugin
});
请在下面找到完整的代码:
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v3.2'
});
FB.Event.subscribe('send_to_messenger', function(e) {
// callback for events triggered by the plugin
console.log(e);
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-send-to-messenger"
messenger_app_id="<Your App ID>"
page_id="<Your Page ID>"
data-ref="1"
color="blue"
size="large">
</div>
此外,在编写上述代码之前,您需要按照以下步骤操作:
1)将您的域添加到白名单(转到您的Facebook页面->设置) 2)在服务器中创建webhook并编写以下代码(代码为PHP。可以使用任何语言) 对于节点js:https://developers.facebook.com/docs/messenger-platform/getting-started/webhook-setup
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
//Write code to listen webhook request
} else {
$VERIFY_TOKEN = '1234';
$mode = $_REQUEST['hub_mode'];
$token = $_REQUEST['hub_verify_token'];
$challenge = $_REQUEST['hub_challenge'];
if ($mode && $token) {
// Checks the mode and token sent is correct
if ($mode === 'subscribe' && $token === $VERIFY_TOKEN) {
// Responds with the challenge token from the request
console.log('WEBHOOK_VERIFIED');
echo $challenge;
http_response_code(200);
} else {
// Responds with '403 Forbidden' if verify tokens do not match
http_response_code(403);
}
} else {
http_response_code(403);
}
}
?>
3)转到应用程序设置并验证您的网络挂钩 设置网址:
https://developers.facebook.com/apps/<Your App ID>/messenger/settings/
现在您应该可以查看“发送到Messenger”按钮
注意:如果应用正在开发中,则管理员,开发人员和测试人员只能看到此按钮。
答案 1 :(得分:0)
您需要在您网页的Messenger个人资料中将您的域(https://www.weekendr.eu)列入白名单:
我假设您正在用您的实际应用ID和网页ID替换所有xxx和vvv。
答案 2 :(得分:0)
就我而言,问题是因为我的广告拦截器(uBlock)阻止了对Facebook的呼叫。禁用uBlock可以解决问题。