【发布时间】:2021-02-02 15:00:35
【问题描述】:
我们创建了一个新的 Facebook 应用(未经审核)并添加了 Messenger 产品。我们已将我们的 Facebook 页面(可见:公开)与我们的应用程序连接起来,并向应用程序添加了一个 Webhook。如文档中所述,我们还在页面设置中将我们的域列入白名单。但是插件仍然没有被渲染。控制台输出:'插件被隐藏'
在测试时,我们以 Facebook 用户身份登录,该用户在应用程序和页面上都具有管理员角色。
您可以在下面看到我们如何集成信使复选框插件。作为来源,我们使用集成了插件的域。
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '766805437589568',
autoLogAppEvents: true,
xfbml: true,
version: 'v9.0'
});
FB.Event.subscribe('messenger_checkbox', function(e) {
console.log("messenger_checkbox event");
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");
}
});
};
</script>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>
<div class="fb-messenger-checkbox"
origin='https://example.com'
page_id=100378165398818
messenger_app_id=766805437589568
user_ref="%%uniqueIdForEveryRender%%"
allow_login="false"
size="large"
skin="dark"
center_align="true">
</div>
在打印屏幕中,您可以看到开发控制台的输出。
我们已经检查了以下帖子Facebook messenger checkbox plugin is hidden。
【问题讨论】:
-
developers.facebook.com/docs/messenger-platform/discovery/… 说,“1.验证您的机器人实际上是否已获得 pages_messaging 权限。” - 这听起来不像是真的应该与尚未审核的应用程序一起使用......?
-
@CBroe 我已提交我们的应用以供审核,目前正在等待反馈。但是,我觉得有点奇怪,一个应用程序必须在开发之前提交审核。我不理解 Facebook 的这种做法。
-
在您的应用程序经过审核和运行之前,向普通用户展示插件几乎没有意义。但是,当
allow_login参数设置为 true 时,在应该渲染插件的时候,可能还不清楚查看您的页面的用户是否真的在您的应用程序中有任何角色,或者只是一个普通用户。因此,他们可能决定让这个特定方面(该插件可能是整个应用功能的一小部分)仅适用于已审核的应用,而不是在这里增加更多复杂性,这对我来说很有意义。 -
是的。收到审核团队的反馈后,请尽快通知您。
-
我们现在拥有
pages_messaging的“高级访问权限”,但仍然无法正常工作。没有想法了。有人有其他想法吗?
标签: facebook facebook-javascript-sdk