質問

Facebook PHP SDKの例に従って、以下を作成しました。

<?php

    require ("lib/facebook.php");

    $facebook = new Facebook(array('appId' => 'XXXXXXXXXXXX', 'secret' => 'XXXXXXXXXXXXXXXXXXXXXXX', 'cookie' => true, ));

    $session = $facebook->getSession();
    $me = null;
    // Session based API call.
    if($session) {
        try {
            $uid = $facebook->getUser();
            $me = $facebook->api('/me');
        }
        catch (FacebookApiException $e) {
            error_log($e);
        }
    }

    // login or logout url will be needed depending on current user state.
    if($me) {
        $logoutUrl = $facebook->getLogoutUrl();
    } else {
        $loginUrl = $facebook->getLoginUrl();
    }
    ?>

    <!doctype html>
    <html xmlns:fb="http://www.facebook.com/2008/fbml">
        <head>
        <title>php-sdk</title>
        <style>
    body {
        font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
    }
    h1 a {
        text-decoration: none;
        color: #3b5998;
    }
    h1 a:hover {
        text-decoration: underline;
    }
    </style>
        </head>

        <body>
    <div id="fb-root"></div>
    <script>
          window.fbAsyncInit = function() {
            FB.init({
              appId   : '<?php
    echo $facebook->getAppId();
    ?>',
              session : <?php
    echo json_encode($session);
    ?>, // don't refetch the session when PHP already has it
              status  : true, // check login status
              cookie  : true, // enable cookies to allow the server to access the session
              xfbml   : true // parse XFBML
            });

            // whenever the user logs in, we refresh the page
            FB.Event.subscribe('auth.login', function() {
              window.location.reload();
            });
          };

          (function() {
            var e = document.createElement('script');
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
          }());
        </script>
    <?php
    if($me):
    ?>
    <a href="<?php
        echo $logoutUrl;
    ?>"> <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif"> </a>
    <?php
    else:
    ?>
    <div> Using JavaScript &amp; XFBML:
          <fb:login-button></fb:login-button>
        </div>
    <?php
    endif;
    ?>
    <h3>Session</h3>
    <?php
        if($me):
    ?>
    <pre><?php
            print_r($session);
    ?></pre>
    <h3>You</h3>
    <img src="https://graph.facebook.com/<?php
            echo $uid;
    ?>/picture"> <?php
            echo $me['name'];
    ?>
    <h3>Your User Object</h3>
    <pre><?php
            print_r($me);
    ?></pre>
    <?php
        else:
    ?>
    <strong><em>You are not Connected.</em></strong>
    <?php
        endif;
    ?>
    <?php
            print_r($me);
    ?>
    </body>
    </html>

ログイン]をクリックしたとき。ウィンドウを開き、許可を許可します。ウィンドウを更新します。同じコンテンツを表示するだけです。私がするとき print_r($me) 何も見えません。

アプリケーション設定をチェックインするとき。アプリケーションは私のFBアカウントにインストールされています。

編集

enter image description here

enter image description here

役に立ちましたか?

解決

アプリの構成に設定したCanvas URLが、コードを実行しているものと同じであることを確認してください。

同じでない場合、これは一般的な動作です。

他のヒント

Canvas URLは、アプリケーションに従ってうまく構成されていないと思います。それを構成する必要があります。そうでなければ、それは一般的な現象です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top