Facebook SDK无法正常工作吗?

时间:2018-07-05 18:35:38

标签: javascript facebook sdk

我的页面上包含了Facebook的SDK,但似乎没有任何反应。

X.addScript("https://connect.facebook.net/en_US/sdk.js", true).then(() => {

    FB.init({
      appId: 'my-app-id',
      cookie: true,
      xfbml: true,
      version: 'v3.0'
    });

    //FB.AppEvents.logPageView();

    console.log("FB", FB);
    FB.getLoginStatus(r => console.log(r));
}, e => console.error(e));

函数来源:

X.addScript = function (src, absolute = false) {
  if (!absolute) {
    src = SITE_URL + "/js/" + src + ".js?v=" + VERSION;
  }

  Array.from(document.head.children).forEach(child => {
    if (child.nodeName === "SCRIPT" && child.src === src) {
      return Promise.resolve();
    }
  });

  return new Promise((resolve, reject) => {
    document.head.appendChild(luri.construct({
      node: "script",
      src: src,
      onload: resolve,
      onerror: reject
    }))
  });
}

这是控制台

enter image description here

奇怪的是,我没有在网络标签中看到对facebook.net的请求,但是添加了脚本标签并且显然定义了FB,但是缺少诸如login之类的功能,getLoginStatus也永远不会回电(也许打给我吗?)

enter image description here

我可以确认页面的网址和在Facebook应用程序上设置的网址相同。

我也仅出于此目的而删除了FB.init调用,并查看了SDK FB.getLoginStatus的源代码,如果在init之前调用它应该抛出一个错误,但不会不会发生,什么都不会记录。

密切关注我的调试器后,我发现加载的SDK的来源实际上是这样的:

FB={getLoginStatus:function(){},api:function(){},ui:function(){},Event:{subscribe:function(){}},UIServer:{},XFBML:{parse:function(){}},init:function(){},__noSuchMethod__:function(){}};

什么是f?

0 个答案:

没有答案