проверка подлинности facebook с использованием JavaScript через расширение Chrome - PullRequest
0 голосов
/ 15 августа 2011

Я пытаюсь отобразить простое окно оповещения, используя мое расширение Chrome, когда пользователь вошел в Facebook.У меня есть код инициализации javascript sdk, а также код для получения статуса входа в систему на моей странице background.html.Мой файл manifest.json правильно вызывает фоновую страницу.

Я не могу разместить точку останова на странице background.html.Я хочу знать, если это то, как я должен объявить JavaScript SDK Facebook и проверить, если пользователь вошел в систему.

<div id="fb-root"></div>

<script src="http://connect.facebook.net/en_US/all.js"></script>

<script>

window.fbAsyncInit = function() {
    FB.init({
      appId  : 'my App id (i have my app id)',
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true  // parse XFBML
    });
  };

  (function() {
    var e = document.createElement('script');
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());

 FB.getLoginStatus(function(response) {
    if (response.authResponse) {
          alert("logged in");} 
    else {
        // no user session available, someone you dont know                                                                                                            
    }
});

 </script>

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

У вас много проблем в коде, давайте сначала исправим его, а затем объясним:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
        appId: 'your app id',
        status: true,
        cookie: true,
        xfbml: true,
        channelUrl : 'http://WWW.MYDOMAIN.COM/channel.html',
        oauth  : true
    });

    FB.getLoginStatus(function(response) {
        if (response.authResponse) {
              alert("logged in");} 
        else {
            // no user session available, someone you dont know                                                                                                            
        }
    });
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

Теперь рассмотрим следующие моменты:

  1. Прочитайте Документация Javascript SDK
  2. Используйте флаг oauth, чтобы включить OAuth 2.0
  3. Вам необходимо использовать асинхронную загрузку или стандартный метод, но не оба из них(Я загружаю его здесь асинхронно)
  4. Поместите все свои вызовы Facebook в fbAsyncInit
  5. Добавьте файл канала
  6. Прочитайте эти статьи one , два
0 голосов
/ 25 августа 2011

Поскольку это делается на фоновой странице, вы должны убедиться, что аутентификация выполняется на другой странице, поскольку фоновая страница не содержит заголовков, пользовательский интерфейс отсутствует.Итак, как бы пользователь щелкнул по авторизации?

Я не знаю API Facebook, но так как это OAuth2, я хотел бы создать отдельную html-страницу под названием "facebook_auth.html", и вы разместитекод аутентификации есть.После того, как он будет авторизован, следуйте указаниям.Кажется, он знает, что делает.Ваша фоновая страница просто откроет эту новую вкладку (chrome.tabs.create) для аутентификации.

Просмотрите этот учебник и примените его к Facebook: http://code.google.com/chrome/extensions/tut_oauth.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...