1

Magento サーバーに製品ページがあります。ユーザーがボタンをクリックすると、そのページにローダーが表示され、Facebook にログインしていない場合は、Facebook PHP-SDK を使用してポップアップが開き、ユーザーにログインを求める場合があります。責任を負う PHP-SDKこのログインポップアップを開くため、Magento サーバーではなく、別のサーバーでホストされています。ユーザーが Facebook にログインしたら、ローダーを非表示にできるように、親ページに通信する方法が必要です。現在のところ、ユーザーがポップアップを使用してログインすると、ポップアップが閉じ、Magento サーバーの製品ページに応答がありません。したがって、ポップアップのクローズの確認はありません。

easyXDM と postmessage jquery プラグインを試しましたが、どれもポップアップから親ページに応答を返すことができませんでした。クロスドメインであっても、イベントが発生した場所と同じページで応答が要求される場合にうまく機能します。ただし、ポップアップが開いた場合は機能しません。

これが達成できるかどうかはわかりません。しかし、もし道があれば、私は喜んで助けてくれるでしょう。

4

1 に答える 1

0

Facebook SDK for PHP は、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>
于 2012-08-10T07:40:06.810 に答える