2013-09-11 1 views
3

ПРИМЕЧАНИЕ Я прочитал все связанные с этим вопросы по этой проблеме, но я не смог найти решение для своей проблемы.facebook login заблокирован вопрос кадра

Facebook Login API HTTPS Issue

Facebook: Unsafe JavaScript issue (document.domain values should be same)

Я столкнулся блокированного кадра вопрос facebook API:

Blocked a frame with origin "https://www.facebook.com" from accessing a frame with origin "http://static.ak.facebook.com". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match. 

я следовал facebook апи учебник и я использую этот код.

 window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'appID', 
      status  : true, 
      channelUrl : 'http://staging.mywebsite.com/login/channel', 
      cookie  : true, 
      xfbml  : true 
     }); 

     FB.login(function(response) { 
      if (response.authResponse) { 
       console.log('done'); 
      } else { 
       console.log('problem'); 
      } 
     }); 

     FB.Event.subscribe('auth.login', function(response) { 
      console.log('test reponse'); 
      console.log(response); 

     }); 
     }; 

     (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)); 

/Войти/канал содержит:

 $cache_expire = 60*60*24*365; 
    header("Pragma: public"); 
    header("Cache-Control: max-age=".$cache_expire); 
    header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT'); 
    echo '<script src="//connect.facebook.net/en_US/all.js"></script>'; 

фб кнопку Логин:

 <fb:login-button width="200" max-rows="1" scope="email,user_birthday,user_interests,user_likes,user_location,user_hometown,user_mobile_phone,user_address"></fb:login-button> 

Я тоже попробовал это, но это не устранило проблему:

 channelUrl : '//staging.mywebsite.com/login/channel', //same issue 

я пропустил что-нибудь? или, может быть, я должен что-то изменить в настройках приложения fb?

+1

Возможно, это не очень полезно, но просто хотел сообщить вам, что я все время нахожу эти ошибки в консоли. Тем не менее, все по-прежнему работает так, как ожидалось, поэтому его просто уродливая, а не проблема. Другими словами, если у вас возникла проблема, это, вероятно, не причина этого ... – Aron

+1

Правда, я до сих пор не удалось преодолеть проблему, но все работает, но все же мне не нравится код, который генерирует ошибки. так что все еще пытаюсь найти решение для этого. – trrrrrrm

+0

Также одна вещь, которую я заметил, эта проблема возникла, когда я использовал staging.myserver.com и исчез на моем фактическом myserver.com, когда я подтолкнул код к производству. – trrrrrrm

ответ

0

Похоже, что вам, возможно, потребуется изменить код, приведенный ниже, чтобы перейти на протокол HTTPS

(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 = "https://connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

Кроме того, SRC = "// domain.com унаследует протокол Вы можете попробовать:.

echo '<script src="https://connect.facebook.net/en_US/all.js"></script>';