Когда я использую этот код:
<?php
require_once "vendor/autoload.php";
$config = ...;
use FacebookAds\Api;
use FacebookAds\Object\Page;
Api::init(
$config['facebook']['app_id'], //APP_ID
$config['facebook']['app_secret'], //APP SECRET
$config['facebook']['app_access_token'] //Token generated by https://developers.facebook.com/tools/explorer for app
);
$page = new Page($config['facebook']['page_id']);
$leadgen_forms = $page->getLeadgenForms(); //heres an error
Я получаю ошибку:
Fatal error: Uncaught FacebookAds\Http\Exception\AuthorizationException: (#190) This method must be called with a Page Access Token in ...
Но когда я помещаю page_access_token вместо app_access_token (из https://developers.facebook.com/tools/explorer), я получаю ошибку: Uncaught FacebookAds\Http\Exception\AuthorizationException: Invalid appsecret_proof provided in the API argument in .... Когда я удаляю строку:
@CBroe, я просто копирую из проводника и вставляю в конфиг вместо app_access_token;






Кажется, вы работаете над формами лидогенерации, которые предназначены только для страниц. Вашему профилю должна быть назначена роль администратора / разработчика. Вы определенно пропустили / скопировали неверное значение для одного из следующих. Подробности ниже скопированы из https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving для более быстрого понимания.
One can read leads or real-time updates by:
Using a Page Access Token, i.e. the Page admin's access token for the page. Page access token also allows you to read ad specific fields such as ad_id, campaign_id, etc., if you have atleast advertiser level permissions on the ad account associated with the lead ad.
Using User Access Token belonging to the page admin. To access all of the lead data and the ad level data, the access token should have manage_pages and ads_management scope.
You can manage user rights with Page roles. In addition, if you need to allow leads download for user with non-admin role on the page, you can whitelist it with leadgen_whitelisted_users endpoint.
Как я могу получить эти жетоны?
Проверить это здесь developers.facebook.com/docs/marketing-api/access
Я использовал разные объекты API для запросов страниц и лидов. Я до сих пор не понимаю, почему сейчас все по-другому.
Другие ответы не показывают, как на самом деле отправить токен доступа к странице вместо токена доступа к приложению или токена доступа пользователя.
require_once "vendor/autoload.php";
$config = ...;
use FacebookAds\Api;
use FacebookAds\Object\Page;
use FacebookAds\Session;
$api = Api::init(
$config['facebook']['app_id'], //APP_ID
$config['facebook']['app_secret'], //APP SECRET
$config['facebook']['app_access_token'] //Token generated by https://developers.facebook.com/tools/explorer for app
);
$page_api = $api->getCopyWithSession(new Session(
$config['facebook']['app_id'], //APP_ID
$config['facebook']['app_secret'], //APP SECRET
$page_access_token // <-- You can get this by accessing 'me/accounts' w/ the initial API
));
$page = new Page($config['facebook']['page_id'], null, $page_api); // <-- use the api with the Page Access Token here
$leadgen_forms = $page->getLeadgenForms(); //heres an error
Покажи нам где / как ты «Поместите page_access_token вместо app_access_token»