Je reçois un objet protégé retourné de l'appel de l'API à Facebook Ads.comment accéder à la réponse de la propriété protégée de facebook dans facebook ads api
$page = new Page($page_id);
$leadgen_forms = $page->getLeadgenForms();
Je reçois la réponse comme ceci:
FacebookAds\Object\Page
(
[response:protected] => FacebookAds\Http\Response Object
(
[response:protected] => Array
(
[data] => Array
(
MY DATA
)
)
)
)
Je l'ai déjà utilisé utilisé Reflection classe
$reflect=new \ReflectionClass($leadgen_forms);
$properties=$reflect->getProperties('content');
et PtcHandyMan
require_once('PtcHm.php');
PtcHandyMan::register();
$data = PtcHandyMan::getProperty($leadgen_forms , 'content');
mais je ne suis pas en mesure pour accéder à la propriété protégée. Est-il possible d'accéder à la propriété protégée. Et aussi je ne comprends pas pourquoi facebook donne la réponse protégée.
Ceci est ma fonction entière
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;
}
Selon https://developers.facebook.com/docs/marketing-api/guides/lead-ads /forms-questions/v2.8#readingforms vous devriez récupérer une structure de données simple. Et pourquoi dit-on "FacebookAds \ Object \ Page' - êtes-vous sûr que c'est la valeur de retour de la méthode, et pas seulement" $ page' ce que vous avez déposé là ...? – CBroe
Ignorer 'FacebookAds \ Object \ Page' .... Mon point est comment accéder aux données protégées. Dans la documentation il montre des données simples mais ce n'est pas simple il est protégé comme je l'ai montré dans la question. –
Que donne 'var_dump ($ leadgen_forms);' par conséquent? – CBroe