Вход в c # sdk клиента Facebook + cookie-файлы xulrunner - PullRequest
0 голосов
/ 30 июня 2011

Я пытаюсь подать заявку с помощью Facebook C # SDK, я использую xulrunner + Gecko Fx для браузера, я могу войти, но мне нужно войти с несколькими учетными записями .. Я удаляю все куки после входа в систему и могу Войдите в систему с другой учетной записью и сохраните токены доступа, и я смогу отправлять или получать сообщения. Но когда я пытаюсь увидеть любую страницу на Facebook с помощью своей программы, я не вижу, потому что я удалил куки, и мне нужно снова войти в систему. Я устал все, но не смог найди решение,

Спасибо

1 Ответ

0 голосов
/ 30 июня 2011

Вы должны не просто удалить куки, но сохранить их и восстановить правильный набор куки, когда это необходимо.Нечто подобное:

function removeAndReturnCookies(host)
{
  var removedCookies = [];
  var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"]
                                .getService(Components.interfaces.nsICookieManager2);
  var e = cookieManager.getCookiesFromHost(host);
  while (e.hasMoreElements())
  {
    var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie2);
    cookieManager.remove(cookie.host, cookie.name, cookie.path, false);
    removedCookies.push(cookie);
  }
}

function restoreCookies(cookies)
{
  var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"]
                                .getService(Components.interfaces.nsICookieManager2);
  for (var i = 0; i < cookies.length; i++)
  {
    var cookie = cookies[i];
    cookieManager.add(cookie.host, cookie.path, cookie.name, cookie.value,
                      cookie.isSecure, cookie.isHttpOnly, cookie.isSession,
                      cookie.expiry);
  }
}

var cookies = removeAndReturnCookies("facebook.com");
restoreCookies(cookies);

Я не тестировал этот код, но что-то подобное должно работать.Ссылки на документацию:

...