2011-12-16 2 views
0

Наш сайт Asp.net использует кнопку входа в facebook (w/javascript sdk) для обработки процесса входа в систему, и теперь, когда Oauth является обязательным (по состоянию на 15 декабря, 2011 (вчера)) - он сломан. Я сделал некоторые очевидные изменения, которые были упомянуты fb oauth migration blog, но все же я получаю ошибки. В частности, когда параметр FB.init() устанавливает status = false, событие auth.login никогда не запускается (что является проблемой, поскольку я использую обратный вызов для этого события для вызова другой страницы, которая выполняет некоторые открытые запросы на серверной стороне на основе маркера авторизации в полученном cookie). Если я установил status = true, это событие будет запущено, но cookie не будет установлен, и поэтому я не могу выполнить свои открытые запросы на основе сервера.Facebook login button with oauth 2 не вызывает auth.login

Вот мой код Javascript (немного отредактирован ...):

window.fbAsyncInit = function() { 
     FB.init({ 
      appId: GetFacebookAppId(), 
      status: true, 
      cookie: true, 
      xfbml: true, 
      oauth: true 
     }); 

     FB.Event.subscribe('auth.login', function (response) { 
      if (response.authResponse && response.authResponse.accessToken) 
       FacebookLoginRedirect(); 
     }); 
    } 

Любые идеи?

Спасибо!

ответ

0

FB.getLoginStatus() Попробуйте вместо if (response.authResponse && response.authResponse.accessToken)

См detaild пример here in the docs:]

+0

, который работает, если fb.init {..., статус: правда, ...}, но я хочу, чтобы установить статус = ложь для работы ж/мой существующий код. когда status = false, событие auth.login не срабатывает. это большая проблема. – skeej

0

Надеюсь, кто-то считает, что это useful- я был в состоянии слушать другого события: auth.statusChange, проверьте ответ, а затем продолжить , Одна вещь заключалась в том, что я должен был отказаться от подписки на это событие, как только я успешно вошел в систему, но тогда он работал нормально.

0

слушать auth.statusChange:

FB.Event.subscribe('auth.statusChange', handleStatusChange);