Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在facebook广告api中从facebook访问受保护的属性响应_Php_Facebook_Facebook Graph Api_Codeigniter 3_Facebook Ads Api - Fatal编程技术网

Php 如何在facebook广告api中从facebook访问受保护的属性响应

Php 如何在facebook广告api中从facebook访问受保护的属性响应,php,facebook,facebook-graph-api,codeigniter-3,facebook-ads-api,Php,Facebook,Facebook Graph Api,Codeigniter 3,Facebook Ads Api,我得到一个从Facebook广告API调用返回的受保护对象 $page = new Page($page_id); $leadgen_forms = $page->getLeadgenForms(); 我得到的回应如下: FacebookAds\Object\Page ( [response:protected] => FacebookAds\Http\Response Object ( [res

我得到一个从Facebook广告API调用返回的受保护对象

 $page = new Page($page_id);
 $leadgen_forms = $page->getLeadgenForms();
我得到的回应如下:

    FacebookAds\Object\Page
          (
      [response:protected] => FacebookAds\Http\Response Object
         (
            [response:protected] => Array
              (
                   [data] => Array
                        (
                             MY DATA
                        )
              )
    )
  )
FacebookAds\Object\Page
  (
    [response:protected] => FacebookAds\Http\Response Object
       (
        [response:protected] => Array
          (
            [data] => Array
              (MY DATA)
          )
      )
  )
我已经用过课堂了

但我无法访问受保护的财产。是否有办法访问受保护的财产。而且我也不明白为什么facebook会给出受保护的回复

这就是我的全部功能

  function get_page_forms(){
        if (!$this->input->is_ajax_request()) {
            exit('No direct script access allowed');
        }
        $page_id = $_POST['page_id'];
        $page_access_token = $_POST['page_access_token'];
        Api::init('APPID', 'SECRET KEY', $page_access_token);
        $page = new Page($page_id);
        $leadgen_forms = $page->getLeadgenForms();
        //$reflect=new \ReflectionClass($leadgen_forms);
        //$properties=$reflect->getProperties('content');
        require_once('PtcHm.php');
        PtcHandyMan::register();
        $data = PtcHandyMan::getProperty( $leadgen_forms , 'content' );
        $allFormsArr = $data['data'];           
        $count = count($allFormsArr);
        $output = '<div class="container">
                    <table class="table table-responsive table-hover">
                        <thead>
                            <tr>
                                <td>Id</td>
                                <td>Name</td>
                                <td>Leads csv file</td>
                                <td>Status</td>
                            </tr>
                        </thead>
                        <tbody>';
            for($i=0; $i<$count; $i++){
                $output .= '<tr>
                                <td>'.$allFormsArr[$i]['id'].'</td>
                                <td>'.$allFormsArr[$i]['name'].'</td>
                                <td><a href="'.$allFormsArr[$i]['leadgen_export_csv_url'].'" target="_new">Link</a></td>
                                <td>'.$allFormsArr[$i]['status'].'</td>
                            </tr>';
            }
           $output .= '</tbody>
                    </table>
                </div>';
        echo $output;
    }
函数get\u page\u forms(){ 如果(!$this->input->is\u ajax\u request()){ 退出(“不允许直接脚本访问”); } $page\u id=$\u POST['page\u id']; $page\u access\u token=$\u POST['page\u access\u token']; Api::init('APPID','SECRET KEY',$page\u access\u token); $page=新页面($page\u id); $leadgen_forms=$page->getLeadgenForms(); //$reflect=new\ReflectionClass($leadgen\u表单); //$properties=$reflect->getProperties('content'); 一次需要_('PtcHm.php'); PtcHandyMan::register(); $data=PtcHandyMan::getProperty($leadgen_forms,'content'); $ALLFORMSAR=$data['data']; $count=count($allFormsArr); $output= 身份证件 名称 线索csv文件 地位 ';
对于($i=0;$i请尝试对属性使用getter方法,如
getContent
。这样可以访问受保护的属性。

有很多方法可以访问facebook API的响应

您的代码:

$page = new Page($page_id);
$leadgen_forms = $page->getLeadgenForms();
您得到的响应如下:

    FacebookAds\Object\Page
          (
      [response:protected] => FacebookAds\Http\Response Object
         (
            [response:protected] => Array
              (
                   [data] => Array
                        (
                             MY DATA
                        )
              )
    )
  )
FacebookAds\Object\Page
  (
    [response:protected] => FacebookAds\Http\Response Object
       (
        [response:protected] => Array
          (
            [data] => Array
              (MY DATA)
          )
      )
  )
你可以使用数组方法

$page = new Page($page_id);
$leadgen_forms = $page->getLeadgenForms()->asArray();

或者,如果您不想使用asArray,请使用simple foreach进行更深层次的操作:

foreach ($leadgen_forms as $leadgen_form) {
  heres your array. It may be protected so you might want to dig deeper with another foreach and so on
}

根据,您应该返回一个简单的数据结构。为什么它会说
FacebookAds\Object\Page
–您确定这是方法返回值,而不仅仅是
$Page
您在那里转储的内容…?忽略
FacebookAds\Object\Page
…我的重点是如何访问受保护的数据。在文档中它显示了simp但是它并不简单,正如我在问题中所展示的那样,它是受保护的。
var_dump($leadgen_forms);
会产生什么结果?这些对象不是有toArray之类的方法吗?@CBroe你是对的。有一种类似toArray的方法。至少是这样的。它是asArray。