我尝试写一个Chrome浏览器扩展,这是通过访问某个网站来触发的。到目前为止,这已经工作。我的分机用户来自我的网页游戏,他们用他们的Facebook帐户登录。为了用他们的游戏帐户识别分机用户,我需要从我的游戏中知道他们的fb应用范围用户ID。铬扩展和Facebook登录问题
到目前为止,我了解到我的后台脚本无法使用facebook sdk登录,因为window.fbAsyncInit没有在里面调用。我环顾四周寻找解决方案,并找到了此页:http://brianmayer.com/2012/12/building-a-chrome-extension-that-connects-to-a-facebook-app/
他打开一个包含iframe的不可见选项卡。在iframe的内部,他从Web服务器调用Facebook登录sdk,然后将带有windows.postmessage的用户数据发送给父级。这听起来像是我的问题的完美解决方案。只有一条线,我不明白我补充有:
parent.postMessage({connectStatus:"" + response.status + "", userID:"" + uid + "", accessToken:"" + at + ""}, "https://www.<PARENT_PAGE_DOMAIN>"); //This MUST match the root domain where the iFrame will be inserted, or the message won't get passed
我有什么在现场PARENT_PAGE_DOMAIN补充的吗?我使用了清单文件中content_scripts/maches中的页面的根域,并使用了托管iframe页的域,但我从未在我的后台脚本中收到邮件。
的评论说,它需要你插入的iframe到页面的域名... – CBroe
是的,我已经读过,但就像我写我不知道当我创建一个动态的HTML包括一个背景脚本内的iframe的域URL是如何?我的意思是只有iframe中的文件有一个真正的http地址。这是该扩展的后台脚本。那么我在哪里可以看到该背景文件具有哪个网址? – computermaus