【问题标题】:Forced to refresh page after a facebook user grants permissions in order to continuefacebook用户授予权限后强制刷新页面以继续
【发布时间】:2012-09-04 06:47:59
【问题描述】:

我需要向 facebook 用户请求权限以获取特定信息(电子邮件、生日)。

当用户第一次启动应用程序时,如果他接受了权限,他将被强制刷新页面以显示数据(只是关于用户的信息,请参阅我的代码)。

问题是它有时可以正常工作,这就是为什么我不知道这是 Facebook 问题还是我自己的代码中的问题。

如果您可以查看我的代码,我们将不胜感激! 提前致谢

<?php
require 'php-sdk/src/facebook.php';
$facebook = new Facebook(array(
            'appId' => '453976824647366',
            'secret' => 'fe86f3b0b34b3ed6XXXXXX',
            'cookie' => true,
        ));

// Get User ID
$user = $facebook->getUser();
if ($user) {
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
        $friends = $facebook->api('/me/friends');
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <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>
    <fb:login-button autologoutlink="true" perms="email,user_birthday" size="large" onlogin="window.location = 'youlike.php';">Connect to this application using Facebook</fb:login-button>
    <?php if ($user): ?>
        <h3>Vous</h3>
        <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">


        <pre><?php print_r($user_profile); ?></pre>
        Date de Naissance : <?php echo $user_profile["birthday"]; 


                echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';?>
    <?php endif ?>
</body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
</div>
<script>
    FB.init({appId: '453976824647366', status: true,
        cookie: true, xfbml: true});

</script>
</div>
</html>

【问题讨论】:

    标签: php facebook api permissions


    【解决方案1】:

    您始终可以强制刷新 login/logout,以确保:

    在你的FB.init之后

    FB.Event.subscribe('auth.login', function(){
        window.location.reload();
    });
    FB.Event.subscribe('auth.logout', function(){
        window.location.reload();
    });
    

    【讨论】:

    • 我试过了,但它不起作用。我仍然需要刷新页面才能显示信息。我想澄清一下这个问题只在第一次登录时出现,如果我断开连接并重新连接它就可以正常工作......不再需要刷新奇怪了!跨度>
    猜你喜欢
    • 2012-03-20
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    相关资源
    最近更新 更多