Аутентифицировать пользователя Facebook в плагине Firefox - PullRequest
2 голосов
/ 21 февраля 2012

Я пытаюсь написать плагин для Firefox, который обращается к данным из Facebook.Теперь я не уверен, как получить токен доступа.Я пытался реализовать поток на стороне клиента для настольных приложений (с фиксированным URI перенаправления), но большая проблема, с которой я здесь сталкиваюсь, заключается в том, что JavaScript не позволяет мне ждать, пока произойдет перенаправление.Есть идеи, как это можно сделать?

Насколько я понял, поскольку у меня нет веб-страницы, JavaScript API не сильно помогает, верно?

1 Ответ

3 голосов
/ 22 февраля 2012

Я предполагаю, что вы открываете 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)
    {
      ...
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...