获取 PSID:Angular2 和 Facebook Messenger 扩展

问题描述 投票:0回答:2

我开始为这个问题苦苦挣扎已经一周了。

我想为 Facebook 机器人创建一个 webview,我想要的只是获取用户的 psid。使用纯 JavaScript 一切都很顺利:我可以使用 window.extAsyncInit() 并等待 Facebook 初始化...但是如果我使用 Angular2,我能做什么?

我尝试将其添加到@Component:

host: {
    '(window:extAsyncInit)': 'this.facebookinit($event)'
  }

我尝试在组件内使用它来模仿滚动侦听器的行为:

@HostListener('window:extAsyncInit', ['$event']) onFbEvent($event){
    console.log("called");
  } 

我尝试了在 stackoverflow 中找到的所有可能的组合......但我仍然被阻止。 目前,我解决了仅响应某些点击事件而调用 MessengerExtensions 的问题,但现在我确实需要它在 webview 出现时可用,并且避免未定义问题的唯一方法是使用 extAsyncInit。

你能帮我吗?

更新: 我也尝试过使用 Renderer2 监听,并将 facebook javascript 代码复制到 asset 文件夹中,并在导入列表下声明 MessengerExtension。但还是没有结果!

facebook angular typescript facebook-messenger facebook-messenger-bot
2个回答
0
投票

ngx-facebook 给你:) https://github.com/zyra/ngx-facebook

但是,我不知道它是否兼容最新的Angular。


0
投票

实际上我为 Angular 创建了一个插件。我的主要动机是性能,因为 Facebook js 插件“杀死”了 Core Web Vitals。我的替代方法是创建一个假按钮,仅在单击时加载真实 Facebook 插件,并添加真实插件的所有选项和自定义,包括显示对话框、显示插件、隐藏插件等。

库:https://www.npmjs.com/package/ngx-facebook-messenger

存储库和文档:https://github.com/SkyZeroZx/ngx-facebook-messenger

现场演示:https://skyzerozx.github.io/ngx-facebook-messenger/

© www.soinside.com 2019 - 2024. All rights reserved.