【问题标题】:Request app level information with Facebook-php-sdk使用 Facebook-php-sdk 请求应用级别信息
【发布时间】:2014-11-28 03:11:41
【问题描述】:

您好,我正在尝试使用应用会话发出请求,它说:“(#200)必须具有有效的 access_token 才能访问此端点”。我只能通过应用会话发出请求,对吗?

下面的代码给了我这个错误。

<?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();
    }
}

?>

【问题讨论】:

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


    【解决方案1】:

    该错误意味着您必须拥有有效的 USER access_token 才能执行搜索。这是因为搜索结果将过滤掉不允许用户查看的事件(或其他内容),例如私人活动或封闭活动。但这也意味着您找到用户确实有权查看的事件。

    总之,您需要登录用户以获得有效用户access_token 才能进行搜索。

    【讨论】:

    • 我可以通过应用级会话获得哪些信息?
    猜你喜欢
    • 2011-12-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多