在Firefox插件中验证facebook用户

Authenticate a facebook user in a Firefox plug-in

本文关键字:facebook 用户 验证 Firefox 插件      更新时间:2023-09-26

我正在尝试编写一个访问facebook数据的Firefox插件。现在我不知道如何获得访问令牌。我试图为桌面应用程序实现客户端流(使用固定的重定向uri),但我在那里遇到的大问题是,JavaScript不允许我等待重定向发生。你知道怎么做吗?

据我所知,因为我没有网页,JavaScript API没有多大帮助,对吧?

我猜您是在浏览器选项卡中打开https://www.facebook.com/dialog/oauth,让用户登录并允许您访问。你不需要在这里传递一个有效的重定向URL,你可以使用一些肯定不起作用的东西,比如http://my.extension.local/。然后,您只需要检测选项卡何时被重定向到该URL。如果你有一个经典的扩展,你可以在该选项卡的<browser>元素上注册一个进度监听器,并查看onLocationChange()调用——一旦你看到一个以http://my.extension.local/开头的位置,你就可以取消请求并关闭该选项卡,必要的数据就在URL中。如果您使用Add-on SDK,您可以将ready事件侦听器附加到选项卡上,大致如下:

var tabs = require("tabs");
tabs.open({
  url: "https://www.facebook.com/dialog/oauth?...",
  inBackground: false,
  onReady: function(tab)
  {
    if (tab.url.indexOf("http://my.extension.local/") == 0)
    {
      ...
    }
  }
});