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'));
清单文件:
{ "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匹配,或者域必须是App域之一的子域.about:blank:1"
任何帮助将不胜感激.
第一个错误来自Chrome.你需要设置content_security_policy,但事实上你确实如此.奇怪的是你的content_security_policy指令完全适合我:
"content_security_policy": "脚本-src的'自我' https://connect.facebook.net ;对象-src的'自我'",
第二个错误来自Facebook.因为你不能在Facebook应用程序设置中允许"chrome-extension"伪协议,你应该使用这样的登录方法:
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0