Popup.js 文件:
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : ******, // App ID from the app dashboard
status : true, // Check Facebook Login status
xfbml : false // Look for social plugins on the page
});
};
// Load the SDK asynchronously
(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/all.js";
fjs.parentNode.insertBefore(js, fjs);
}
(document, 'script', 'facebook-jssdk'));
list 文件:
{
"manifest_version": 2,
"name": "Charts",
"description": "Demo",
"version": "1.0",
"content_security_policy": "script-src 'self' 'unsafe-eval' https://connect.facebook.net; object-src 'self'",
"permissions": [
"https://connect.facebook.net/en_US/all.js"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
当我将包含桌面文件的文件夹作为扩展名上传到 chrome 时,我遇到了错误。但是,当我打开扩展程序并检查它时,我收到以下错误:
"拒绝执行 JavaScript URL,因为它违反了以下内容安全策略指令:"script-src 'self' 'unsafe-eval' https://connect.facebook.net “。”
和
“应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或 Canvas URL 匹配,或者域必须是应用程序域之一的子域. 关于:空白:1"
任何帮助将不胜感激。
最佳答案
第一个错误来自 Chrome。您需要设置 content_security_policy 但确实如此。奇怪的是你的 content_security_policy 指令完全适合我:
"content_security_policy": "script-src 'self' https://connect.facebook.net ; object-src 'self'",
第二个错误来自 Facebook。因为您不能在 Facebook 应用程序设置中允许“chrome-extension”伪协议(protocol),所以您应该使用如下登录方法:
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0
关于facebook-graph-api - 将 Facebook sdk 与 Chrome 扩展一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20849496/