我在测试页面上实现了Facebook Checkbox插件,如per their documentation。但是,该复选框不会呈现。它仍然是隐藏的。
我遇到了同样问题的其他一些问题,但似乎没有一个能解决我的问题。我确定了:
user_ref
始终是唯一的。以下是我的代码:
<?php $random_val=rand(100000,999999).rand(100000,999999).rand(100000,999999);?>
<html>
<head>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '472807186447994',
xfbml : true,
cookie : true,
version : 'v2.6'
});
FB.Event.subscribe('messenger_checkbox', function(e) {
console.log(e);
if (e.event == 'rendered') {
console.log("Plugin was rendered");
} else if (e.event == 'checkbox') {
var checkboxState = e.state;
console.log("Checkbox state: " + checkboxState);
} else if (e.event == 'not_you') {
console.log("User clicked 'not you'");
} else if (e.event == 'hidden') {
console.log("Plugin was hidden");
}
});
};
(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 = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk')
);
function confirmOptIn() {
FB.AppEvents.logEvent('MessengerCheckboxUserConfirmation', null, {
'app_id':'472807186447994',
'page_id':'408145106012959',
'ref':'some-ref-here',
'user_ref':'<?php echo $random_val; ?>'
});
}
</script>
<div class="col-md-7">
<div class="fb-messenger-checkbox"
origin="https://maartenbelmans.com/fbtest"
page_id="408145106012959"
messenger_app_id="472807186447994"
user_ref="<?php echo $random_val; ?>"
prechecked="false"
allow_login="true"
size="large">
</div>
</div>
<body>
<input type="button" onclick="confirmOptIn()" value="Confirm Opt-in"/>
</body>
我不确定如何解决这个问题。 有什么想法吗?
答案 0 :(得分:1)
当我看到你已经通过的所有Fb政策时,但是你错过了一件事我看到你的代码结构,你把facebook DIV放在html的正文部分之外是错误的。
<div class="fb-messenger-checkbox"
origin="https://maartenbelmans.com/fbtest"
page_id="408145106012959"
messenger_app_id="472807186447994"
user_ref="<?php echo $random_val; ?>"
prechecked="false"
allow_login="true"
size="large">
</div>
上面这个div必须在任何页面的正文中。
所以,你的问题将得到解决。
答案 1 :(得分:0)
你试过在div中设置origin =“maartenbelmans.com/”吗? Origin应该只是域名,所以当插件检查你的来源与白名单时没有匹配。
答案 2 :(得分:0)
我曾遇到过这些问题 一个是白名单域名 一个是起源的东西
另一个是当我玩这个版本的时候请确定你选择的版本也是2.8,所以2.6可能不是真的,请找出你正在使用的相应版本
答案 3 :(得分:0)
我用这个解决了。
故障排除技巧
如果您无法正确显示插件,请尝试以下提示:
答案 4 :(得分:0)
我有同样的问题。这是来自Facebook的提示:
我遵循了所有这些提示,但是仍然没有用。
我的解决方案是添加WebHook网址并订阅消息事件