chrome扩展和Facebook登录问题

时间:2017-03-21 07:44:46

标签: javascript facebook google-chrome iframe

我尝试编写一个chrome扩展名,这是通过访问某个网站来触发的。到目前为止,这已经成功。我的分机用户来自我的网页游戏,他们使用自己的Facebook帐户登录。为了使用他们的游戏帐户识别扩展用户,我需要知道他们的fb app应用程序用户ID来自我的游戏。

到目前为止,我了解到我的后台脚本无法使用facebook sdk进行登录,因为window.fbAsyncInit并未在内部调用。我四处寻找解决方案,我找到了这个页面:http://brianmayer.com/2012/12/building-a-chrome-extension-that-connects-to-a-facebook-app/

他打开一个包含iframe的隐形标签。在iframe内部,他从网络服务器调用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页面的域,但我从未在后台脚本中收到该消息

1 个答案:

答案 0 :(得分:0)

你试过这个吗? enter link description here

首先,您需要获取重定向网址 get redirect url 这是我的代码:

chrome.identity.launchWebAuthFlow({
    url: AUTH_URL,
    interactive: true
  }, function(redirectURL) {
    if (chrome.runtime.lastError) {
      alert(chrome.runtime.lastError.message);
    }
    if(redirectURL){
      var q = redirectURL.substr(redirectURL.indexOf('#')+1);
      var parts = q.split('&');
      for (var i = 0; i < parts.length; i++) {
        var kv = parts[i].split('=');
        if (kv[0] == 'access_token') {
          var token = kv[1];
          console.log(token)
          // do something...
        }
      }
    }
  });
相关问题