2012-04-17 3 views
0

У меня возникли проблемы с клиентской стороной на стороне javascript facebook. Код ниже работает так, как ожидается, когда приложение не авторизовано, появится всплывающее окно авторизации приложения. Когда один и тот же код запускается в кодедигере, диалог авторизации не появляется.Facebook клиентская сторона Разрешение на использование приложения в codeigniter

 // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

    // Init the SDK upon load 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '169550646480230', // App ID 
     channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 
+0

Пожалуйста, разместите код на стороне сервера и многое другое из html. –

ответ

0

Выбрано это.

Любые вызовы PHP facebook, которые выполняются до того, как аутентификация Javascript будет генерировать исключение на сервере и остановить все действия HTML. На мой взгляд, это называется Async.

0

Это может быть из-за два вещами (я делаю предположение здесь):

  1. CSRF включен и блокирующий внешний ответ от Facebook
  2. ответа от FB отфильтровываются из-за инвалид Символы URI.

Сначала отключите CSRF и проверьте, не работает ли это, что было бы отправной точкой.

+0

Похоже, что он по умолчанию отключен $ config ['csrf_protection'] = FALSE; –

Смежные вопросы