簡體   English   中英

使用Facebook-php-sdk請求應用程序級別信息

[英]Request app level information with Facebook-php-sdk

嗨,我正在嘗試通過應用會話發出請求,並說: “(#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();
    }
}

?>

該錯誤意味着您必須具有有效的USER access_token才能執行搜索。 這是因為搜索結果將過濾掉不允許用戶查看的事件(或其他內容),例如私人事件或關閉事件。 但這也意味着您發現用戶確實有權查看的事件。

總之,您需要登錄用戶以獲得有效的用戶access_token才能使搜索生效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM