Facebook应用程序重定向:我确实拥有权限,但我一直空着$ session

时间:2011-05-06 12:08:51

标签: php facebook facebook-graph-api facebook-php-sdk

的index.php

     require_once ('../src/facebook.php');
     $facebook = new Facebook(array(
     'appId' => 'xxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'cookie' => true,
    ));
    $session = $facebook->getSession();
    if (!empty($session)) {
try {
    $uid = $facebook->getUser();
    $user = $facebook->api('/me');
    echo 'session found';
        } catch (Exception $e) {}
    if(!empty($user)) {
        include 'result.php';
                }

            else {
                    $url = $facebook->GetLoginUrl(array('canvas' => 1,
                                   'fbconnect' => 0,
                                   'req_perms' => 'publish_stream, email, user_birthday, user_hometown, user_location, user_religion_politics, user_relationships, friends_about_me, friends_relationships',
                                   'next' => 'http://www.applicationsite.com/index.php',
                                   'cancel_url' => $appCanvasPage ));
                  #echo 'no user -> link to login';
    echo '<a href="'.$url.'">Click here to install the app</a>;
        }
    }
    else {
            $url = $facebook->GetLoginUrl(array('canvas' => 1,
                                   'fbconnect' => 0,
                                   'req_perms' => 'publish_stream, email, user_birthday, user_hometown, user_location, user_religion_politics, user_relationships, friends_about_me, friends_relationships',
                                   'next' =>'http://www.applicationsite.com/index.php',
                                   'cancel_url' => $appCanvasPage ));
   #echo 'no session -> link to login';
    echo '<a href="'.$url.'">Click here to install the app</a>;
           }
       ?>

choice.php

    just to html links to :

    http://www.applicationsite.com/index.php?&param=1
    http://www.applicationsite.com/index.php?&param=1

result.php

        <?php 


        extract($_GET);

        if (isset($param)){

        I show my result

        }
        else
        {
        include 'choice.php';   
        }

    ?>

当我第一次启动页面时,我得到了#34;没有会话&#34;链接,所以我点击并且我要求提供权限,一旦我点击&#34;允许&#34;,它将我重定向到&#34; choice.php&#34;页面,这意味着$ params没有设置。那很棒。

但是当我点击它时,我会回到索引页面,其中包含&#34; no session&#34;链接,我必须再次点击链接,然后它让我回到&#34; choice.php&#34;页。我一直在转身。

1 个答案:

答案 0 :(得分:0)

检查一下......我将if!empty(用户)移动到页面底部并使用if $ user ...如果这不起作用那么我将放弃^^

     require_once ('../src/facebook.php');
     $facebook = new Facebook(array(
     'appId' => 'xxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'cookie' => true,
    ));
    $session = $facebook->getSession();
    if (!empty($session)) {
try {
    $uid = $facebook->getUser();
    $user = $facebook->api('/me');
    echo 'session found';
        } catch (Exception $e) {}
    }
    else {
            $url = $facebook->GetLoginUrl(array('canvas' => 1,
                                   'fbconnect' => 0,
                                   'req_perms' => 'publish_stream, email, user_birthday, user_hometown, user_location, user_religion_politics, user_relationships, friends_about_me, friends_relationships',
                                   'next' =>'http://www.applicationsite.com/index.php',
                                   'cancel_url' => $appCanvasPage ));
   #echo 'no session -> link to login';
    echo '<a href="'.$url.'">Click here to install the app</a>';
           }
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
    <meta charset="UTF-8"/>
<meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="author" content="" /> <title>test</title> <link rel="stylesheet" href="../styles.css" type="text/css" media="screen" /> </head> <body> <div id="fb-root"></div> <?php if ($user){ ?>
<!-- whatever you want to put on the website just for user goes here--> <div class="whatever"> <?php include "result.php";?> </div> <?php } ?> </body> </html>