Question

I have followed the Facebook PHP SDK example and created the following.

<?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>

When i click Login. It opens the window and when i allow permission. It refreshes the window. only to show the same content. when i do a print_r($me) nothing is visible.

When i check in the Application settings. The application has been installed in my fb account.

EDIT

enter image description here

enter image description here

Was it helpful?

Solution

Check that the Canvas URL you have set up into your app configuration is the same that the one which you are executing the code.

If it's not the same, this is a common behaviour.

OTHER TIPS

i think the canvas url is not configured well as per your application . you have to configure it,otherwise it is the common phenomenan.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top