如何使用 php 为用户获取 facebook 事件


How can i get facebook events for user using php?

我正在创建一个网站,我需要在其中获取登录用户的事件名称。我正在使用图形API。我是图形 API 的新手。目前我正在使用此代码:

session_start();
// added in v4.0.0
require_once 'autoload.php';
use Facebook'FacebookSession;
use Facebook'FacebookRedirectLoginHelper;
use Facebook'FacebookRequest;
use Facebook'FacebookResponse;
use Facebook'FacebookSDKException;
use Facebook'FacebookRequestException;
use Facebook'FacebookAuthorizationException;
use Facebook'GraphObject;
use Facebook'Entities'AccessToken;
use Facebook'HttpClients'FacebookCurlHttpClient;
use Facebook'HttpClients'FacebookHttpable;
// init app with app id and secret
FacebookSession::setDefaultApplication( 'app-id','secret-key' );
// login helper with redirect_uri
    $helper = new FacebookRedirectLoginHelper('redirect_uri' );
try {
  $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
  // When Facebook returns an error
} catch( Exception $ex ) {
  // When validation fails or other local issues
}
// see if we have a session
if ( isset( $session ) ) {
  // graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // get response
  $graphObject = $response->getGraphObject();
        $fbid = $graphObject->getProperty('id');              // To Get Facebook ID
        $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name
        $femail = $graphObject->getProperty('email');    // To Get Facebook email ID
    /* ---- Session Variables -----*/
        $_SESSION['FBID'] = $fbid;           
        $_SESSION['FULLNAME'] = $fbfullname;
        $_SESSION['EMAIL'] =  $femail;
    /* ---- header location after session ----*/
$request1 = new FacebookRequest(
  $session,
  'GET',
  '/'.$fbid.'/events'
);
$response1 = $request1->execute();
$graphObject1 = $response1->getGraphObject();
 print_r($graphObject1->getProperty('data'));die();
  header("Location: index.php");
} else {
  $loginUrl = $helper->getLoginUrl();
 header("Location: ".$loginUrl);
}
?>

但是我得到的是空白页。请帮忙。

确保您具有正在使用的访问令牌中包含的user_events权限。据我所知,您在登录过程中没有请求它。

看看

  • 在 php facebook sdk 4.0.0 或更高版本中指定应用范围
  • https://developers.facebook.com/docs/graph-api/reference/user/events/#Reading
  • https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens