Facebook SDK V4

 大地瓜1975 发布于 2023-01-16 16:23

我正在尝试将我的应用程序转换为最新版本的Facebook PHP SDK(V4).我有三个问题:第一个问题是每次调用(使用我的代码)都需要经历getLoginUrl()函数.这对我来说似乎很奇怪,因为会话的重点是不必为每次调用生成新代码,对吗?其次,我正在试图弄清楚如何访问数据 - 现在所有内容都包含在["backingData":protected]节点中...当我尝试访问时...给我一个致命错误:

 Cannot access protected property Facebook\GraphObject::$backingData

最后,我假设我收到此错误,因为我没有请求正确的权限.正如您将在我的代码中看到的那样,我使用之前的'scope'数组语法作为getLoginUrl()函数中的参数...但它永远不会弹出并要求我接受权限.

这是我的代码:

require_once( 'fb2/FacebookSession.php' );
require_once( 'fb2/FacebookRedirectLoginHelper.php' );
require_once( 'fb2/FacebookRequest.php' );
require_once( 'fb2/FacebookResponse.php' );
require_once( 'fb2/FacebookSDKException.php' );
require_once( 'fb2/FacebookRequestException.php' );
require_once( 'fb2/FacebookAuthorizationException.php' );
require_once( 'fb2/GraphObject.php' );
require_once( 'fb2/FacebookOtherException.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\FacebookOtherException;

session_start();

FacebookSession::setDefaultApplication('522464134491111', '');

$helper = new FacebookRedirectLoginHelper('https://mediaalias.com/fb_apps/graph_search_2.php/');

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

} catch(\Exception $ex) {

}

if ( isset( $session ) && $session ) {
  // graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/breakthelimit/posts' );
  $response = $request->execute();
  // get response
  $posts = $response->getGraphObject();

  // print data
  echo "
";
    var_dump($posts);
  echo "
"; } else { // show login url echo 'Login'; }

我正在尝试获取每个页面帖子的ID.以前,这非常简单.

以下是我在API中的回复:

object(Facebook\GraphObject)#289 (1) {
  ["backingData":protected]=>
  array(2) {
    ["data"]=>
    array(20) {
      [0]=>
      object(stdClass)#5 (18) {
        ["id"]=>
        string(31) "213418912041722_602369633146646"
        ["from"]=>
        object(stdClass)#6 (3) {
          ["category"]=>
          string(7) "Website"
          ["name"]=>
          string(20) "Favorite Exotic Car?"
          ["id"]=>
          string(15) "213418912041722"
        }

同样,对我来说,问题是,每次刷新脚本时,代码都必须在每次刷新脚本时生成一个新代码(令牌? - 它表示?code =).而且,如何访问响应中的数据?

我试过倾销:

$posts->backingData['data'] 

这是我得到致命错误的地方.然后直接去:

$posts->data

返回NULL.

任何帮助表示赞赏.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有