我做了一个 chrome 扩展来自动喜欢特定的页面帖子。 用一个简单的弹出 Controller 和后台线程来处理 fb api 交互
我无法使用官方示例方法将 facebook js api 加载到扩展页面。
脚本 jssdk 由 chrome 开发人员工具检查加载和执行。
但是window.FB不是由加载的脚本定义的!!!
- 我还手动添加脚本标签。
- 同时出现后台线程和弹出窗口。
- 如果注入(inject) iframe 来加载页面,它将成功加载 window.FB 并弹出一个登录/验证窗口。但是它有一个跨域问题!
- div#fb-root 存在。
- menifest.json 有 content_security_policy
- 脚本源“ self ”https://connect.facebook.net ;对象源“ self ”
最佳答案
我没有解决方案,但这可能会引导您朝着正确的方向前进。
问题可能出在扩展文档的 document.location 上。对于在扩展范围内运行的 javascript,协议(protocol)是“chrome-extension://”,而许多 JS 库期望“http”或“https”。
通过查看 jssdk 文件中的以下行,似乎 FB 也做出了这个假设:
var k = typeof j == 'undefined' ? location.protocol.replace(':', '') : j ? 'https' : 'http';
尝试调试这些情况,将上面的行替换为类似以下内容:
var k = 'http';
希望这对您有所帮助。
关于javascript - 用于谷歌浏览器扩展的 Facebook JavaScript API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779239/