2012-08-10 3 views
1

Magento 서버에 제품 페이지가 있습니다. 사용자가 버튼을 클릭하면 해당 페이지에 로더가 표시되고 페이스 북에 로그인하지 않은 경우 Facebook PHP-SDK를 사용하여 로그인하라는 팝업이 열립니다. PHP-SDK의 책임 이 로그인 팝업을 여는 것은 Magento 서버가 아니라 다른 서버에서 호스팅됩니다. 로더를 숨길 수 있도록 사용자가 페이스 북에 로그인하면 상위 페이지로 다시 통신 할 수있는 방법이 필요합니다. 현재 사용자가 팝업을 사용하여 로그인하면 팝업이 닫히고 Magento 서버의 제품 페이지로 다시 응답하지 않습니다. 따라서 팝업 마감에 대한 승인이 없습니다.facebook 로그인 팝업에서 부모에게 다시 연락하십시오.

나는 easyXDM과 postmessage jquery plugin을 시도했지만 그들 중 누구도 팝업으로부터 부모 페이지로 응답을 되돌릴 수 없었다. 교차 도메인에서도 이벤트가 발생한 동일한 페이지에서 응답이 요청되는 경우에 적합합니다. 그러나 팝업이 열리면 작동하지 않습니다.

이것이 실현 될지 확실하지 않습니다. 그러나 방법이 있다면, 나는 도움이되기를 기뻐합니다.

답변

0

PHP 용 Facebook SDK는 Facebook SDK for Javascript와 함께 작동하여 앱의 클라이언트 측과 서버 측 모두에서 원활한 세션 관리를 제공 할 수 있습니다.

기존 코드에서 다음 코드가 존재하는지 여부를 확인하십시오. 추가하지 않을 경우 결과를 확인하십시오.

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '<?php echo $facebook->getAppID() ?>', 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 
    FB.Event.subscribe('auth.login', function(response) { 
     window.location.reload(); 
     // you can specify your location also. 
    }); 
    FB.Event.subscribe('auth.logout', function(response) { 
     window.location.reload(); 
     // you can specify your location also. 
    }); 
    }; 
    (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>