木偶创建Facebook登录按钮

时间:2020-11-08 12:46:46

标签: javascript node.js facebook puppeteer facebook-login

我正在尝试创建一个空白页并通过puppeteer使用Facebook按钮登录,但是该按钮没有显示。我已经使用相同的javascript代码在html文件中尝试过,并且工作正常(按钮显示了3-5秒)

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.evaluate(() => {
    // Add Facebook Login button
    let loginButton = document.createElement("fb:login-button");
    loginButton.setAttribute("scope", "public_profile,email");
    loginButton.setAttribute("onlogin", "checkLoginState()");

    // Add button to body
    let body = document.getElementsByTagName("body")[0];
    body.appendChild(loginButton);
  });
  await page.addScriptTag({
    content: () => {
      // Facebook Login Function
      window.fbAsyncInit = function () {
        FB.init({
          appId: process.env.facebook_app_id_test,
          cookie: true,
          xfbml: true,
          version: "v8.0"
        });

        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 = "https://connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
      })(document, "script", "facebook-jssdk");

      FB.getLoginStatus(function (response) {
        statusChangeCallback(response);
      });

      function checkLoginState() {
        FB.getLoginStatus(function (response) {
          statusChangeCallback(response);
        });
      }
    }
  });

  await page.screenshot({ path: "example.png" });

  await browser.close();
})();

0 个答案:

没有答案