Перенаправление приложения Facebook: у меня есть разрешения, но я получаю пустую $ session - PullRequest
0 голосов
/ 06 мая 2011

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';   
        }

    ?>

Когда я впервые запускаю страницу, я получаю ссылку «нет сеанса», поэтому я нажимаю, и меня просят предоставить разрешения, как только я нажимаю «разрешить», он перенаправляет меня на страницу «choice.php», которая означает, что $ params не установлен. замечательно.

Но когда я нажимаю на нее, я возвращаюсь на страницу индекса со ссылкой "нет сеанса", и мне нужно снова щелкнуть ссылку, а затем она возвращает меня на страницу "choice.php" , и я продолжаю поворачиваться.

1 Ответ

0 голосов
/ 06 мая 2011

отметьте это ... Я переместил if! Empty (user) в конец страницы и использую if $ user ... если это не сработает, тогда я откажусь от ^^

<pre> 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 '<code><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"/><br> <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){ ?><br> <!-- whatever you want to put on the website just for user goes here--> <div class="whatever"> <?php include "result.php";?> </div> <?php } ?> </body> </html>

...