使用Facebook-php-sdk请求应用程序级别的信息
问题描述:
您好,我正在尝试使用应用程序会话发出请求,并说:“(#200)必须有有效的access_token才能访问此端点”。我只能通过应用会话提出请求吗?使用Facebook-php-sdk请求应用程序级别的信息
在它的代码下面给了我这个错误。
<?php
require_once('Facebook/FacebookSession.php');
require_once('Facebook/GraphObject.php');
require_once('Facebook/GraphSessionInfo.php');
require_once('Facebook/FacebookRedirectLoginHelper.php');
require_once('Facebook/FacebookSDKException.php');
require_once('Facebook/FacebookRequestException.php');
require_once('Facebook/FacebookPermissionException.php');
require_once('Facebook/FacebookRequest.php');
require_once('Facebook/FacebookResponse.php');
require_once('Facebook/FacebookAuthorizationException.php');
require_once('Facebook/GraphObject.php');
require_once('Facebook/Entities/AccessToken.php');
require_once('Facebook/HttpClients/FacebookCurl.php');
require_once('Facebook/HttpClients/FacebookHttpable.php');
require_once('Facebook/HttpClients/FacebookCurlHttpClient.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;
// start session
session_start();
// init app with app id and secret
FacebookSession::setDefaultApplication($facebook_app_id, $facebook_app_secret);
$session = FacebookSession::newAppSession();
// To validate the session:
try {
$session->validate();
} catch (FacebookRequestException $ex) {
// Session not valid, Graph API returned an exception with the reason.
echo $ex->getMessage();
} catch (\Exception $ex) {
// Graph API returned info, but it may mismatch the current app or have expired.
echo $ex->getMessage();
}
if(isset($session)){
try {
$response = (new FacebookRequest($session, 'GET', '/search?q=coimbra&type=event&limit=5000'))->execute();
$object = $response->getGraphObject();
echo "done.";
} catch (FacebookRequestException $ex) {
echo $ex->getMessage();
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
?>
答
该错误表示您必须拥有有效的USER access_token
才能执行搜索。这是因为搜索结果将过滤出用户不被允许看到的事件(或其他内容),例如,私人活动或封闭活动。但它也意味着你发现用户有权查看的事件。
总之,您需要登录用户才能获取有效用户access_token
以使搜索正常工作。
什么样的信息可以通过应用程序级别会话获得? – user3709132 2014-10-03 12:26:46