想要使用访问令牌创建多个脚本来访问facebook api,但未定义变量

时间:2014-07-21 15:00:37

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

目前我有两个php脚本:index.php和upload.php

在我的index.php中,我创建了一个会话并保存了访问令牌:

  // see if a existing session exists
  if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
    // create new session from saved access_token
    $session = new FacebookSession( $_SESSION['fb_token'] );

// validate the access_token to make sure it's still valid
try {
    if ( !$session->validate() ) {
    $session = null;
    }
} catch ( Exception $e ) {
// catch any exceptions
$session = null;
    }
}     

if ( !isset( $session ) || $session === null ) {
    // no session exists

try {
$session = $helper->getSessionFromRedirect();
    } catch( FacebookRequestException $ex ) {
    // When Facebook returns an error
    // handle this better in production code
        print_r( $ex );
            } catch( Exception $ex ) {
// When validation fails or other local issues
// handle this better in production code
    print_r( $ex );
}

}

 // see if we have a session
if ( isset( $session ) ) {

      // save the session
            $_SESSION['fb_token'] = $session->getToken();
         // create a session using saved token or the new one we generated at login
           $session = new FacebookSession( $session->getToken() );

在我的另一个脚本中:upload.php我正在尝试制作一个facebook api,但我正在努力创建一个会话。我这样做了:

         if ( isset( $_SESSION['fb_token'] ) ) {
      // create FB session from Access Token
    $session = new FacebookSession( $_SESSION['fb_token'] );

     // the rest of your code here...

      } else {
    // redirect back to index for login
     header( 'Location: index.php' );
       }

但它只是将我重定向回index.php。我不明白为什么,因为我确实在index.php ...

中创建了变量

我还尝试使用GET方法从我的URL中获取代码...

$token = $_GET['code'];

$session = new FacebookSession( $token );

但是它说变量是未定义的......即使我的URL中显示“代码”...我也确实设置了但是它返回了假..所以我不确定为什么我的变量未设置。有人可以解释并帮助我吗?我是php的新手,所以一整天都花在这上面,我相信这可能是一个小问题?我之前从另一个简单的项目中检索了来自URL的userid,并且从未遇到过这个问题...谢谢

0 个答案:

没有答案