我正在尝试创建一个空白页并通过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();
})();