Facebook SDK与React Web

Facebook SDK与React Web,facebook,reactjs,facebook-graph-api,facebook-javascript-sdk,Facebook,Reactjs,Facebook Graph Api,Facebook Javascript Sdk,是否有人在您的react web(非本机)项目中成功使用Facebook SDK?这方面似乎没有什么好的文档 具体地说。在哪里调用init函数 <script> window.fbAsyncInit = function() { FB.init({ appId : 'your-app-id', autoLogAppEvents : true, xfbml : true, version : 'v2.9

是否有人在您的react web(非本机)项目中成功使用Facebook SDK?这方面似乎没有什么好的文档

具体地说。在哪里调用init函数

 <script>
 window.fbAsyncInit = function() {
 FB.init({
  appId            : 'your-app-id',
  autoLogAppEvents : true,
  xfbml            : true,
  version          : 'v2.9'
});
FB.AppEvents.logPageView();
};

(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'));
 </script>

window.fbAsyninit=函数(){
FB.init({
appId:'您的应用程序id',
自动假肢:对,
xfbml:是的,
版本:“v2.9”
});
FB.AppEvents.logPageView();
};
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/en_US/sdk.js”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
如果我在每个页面上添加它,FB.AppEvents.logPageView()不会加载/注册回Facebook(调试事件时我看不到它)。如果我在主app.js上添加init代码,然后在各个页面上添加FB.AppEvents.logPageView(),有时会出现控制台错误,无法找到FB.AppEvents


在react web应用程序中集成Facebook SDK的最佳实践是什么?

您是否有应用程序id并在代码中设置了它?

可能有很多方法,我目前正在使用这种方法来实现这一点:

  • index.html
    页面中添加FacebookSDK for JavaScript,您将在其中放置整个应用程序组件。在相同的
    index.html
    文件中,在body标记的开头添加


window.fbAsyninit=函数(){
FB.init({
appId:'您的应用程序id',
自动假肢:对,
xfbml:是的,
版本:“v2.9”
});
FB.AppEvents.logPageView();
};
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/en_US/sdk.js”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
  • 安装应用程序组件后,上面的代码片段初始化
    window.FB
    变量。您可以使用此变量执行
    window.FB.AppEvents.logPageView()
    和任何其他操作,如访问graph API
  • 有一个问题可能会出现,那就是当组件被挂载时,一切正常,但一旦它被卸载,你可以回到这个组件,事情可能不会正常工作,比如fb评论或类似插件。要解决这个问题,您必须在访问facebook内容的每个组件的
    ComponentDidMount()
    生命周期方法中添加以下行:
    if(window.FB){window.FB.XFBML.parse();}
    。它将在装载组件后重新解析dom
-本视频介绍了facebook、google和linkedin在reactjs中使用SDK的登录功能
 <script>
 window.fbAsyncInit = function() {
 FB.init({
  appId            : 'your-app-id',
  autoLogAppEvents : true,
  xfbml            : true,
  version          : 'v2.9'
});
FB.AppEvents.logPageView();
};

(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'));
 </script></body>