php-通过图表访问facebook洞察数据

时间:2014-05-14 11:55:29

标签: php facebook graph

首先,如果已经回答了问题,或者已经有了有用的链接,我想道歉。

我创建了一个带有secret和id的facebook应用程序,我也经历过身份验证程序。 我的目标是获取用户页面之一的Insight Data。正如您在代码中看到的那样,到目前为止我只是检索用户的名字(在facebook开发教程的帮助下)。 所以示例问题:我怎样才能使页面像我的代码一样回应? 非常感谢你提前!

<?php 
session_start();

require "vendor/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\GraphSessionInfo;
use Facebook\GraphUser;

$appid = "numbers"; // my AppID
$secret = 'numbersandletters'; // my secret

//Session
FacebookSession::setDefaultApplication($appid ,$secret);

//Login
$helper = new FacebookRedirectLoginHelper(           'http://localhost:85/phplearning/facebook/facebook2.php' );

try {$session = $helper->getSessionFromRedirect();} 
catch( FacebookRequestException $ex ) {echo $ex;} 
catch( Exception $ex ) {echo $ex;}

// active session?
if( isset($_SESSION['token']))
{
$session = new FacebookSession($_SESSION['token']); 
try{$session->Validate($appid ,$secret);}
catch( FacebookAuthorizationException $ex)
{$session ='';}
}
if ( isset( $session ) ) 
{   
$_SESSION['token'] = $session->getToken();
 try {

     $user_profile = (new FacebookRequest(
     $session, 'GET', '/me'
     ))->execute()->getGraphObject(GraphUser::className());

     echo "Name: " . $user_profile->getName();

     } catch(FacebookRequestException $e) {

    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();

 } 
} 
else 
{

  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
?>

1 个答案:

答案 0 :(得分:0)

如果您只想要喜欢的页面,则只需要这样:

$data = file_get_contents('http://graph.facebook.com/facebook');
$data = json_decode($data);
echo $data['likes'];

http://graph.facebook.com/facebook替换为页面ID或用户名: 例如: