Приложение FB Этот метод должен вызываться с токеном доступа к странице

Когда я использую этот код:

<?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 .... Когда я удаляю строку:

Покажи нам где / как ты «Поместите page_access_token вместо app_access_token»

CBroe 09.03.2018 15:38

@CBroe, я просто копирую из проводника и вставляю в конфиг вместо app_access_token;

unbreak 13.03.2018 10:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
2
2 496
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Кажется, вы работаете над формами лидогенерации, которые предназначены только для страниц. Вашему профилю должна быть назначена роль администратора / разработчика. Вы определенно пропустили / скопировали неверное значение для одного из следующих. Подробности ниже скопированы из 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.

Как я могу получить эти жетоны?

unbreak 13.03.2018 09:40

Проверить это здесь developers.facebook.com/docs/marketing-api/access

Rajesh 13.03.2018 09:50

Я использовал разные объекты API для запросов страниц и лидов. Я до сих пор не понимаю, почему сейчас все по-другому.

hypd09 17.03.2018 07:01

Другие ответы не показывают, как на самом деле отправить токен доступа к странице вместо токена доступа к приложению или токена доступа пользователя.

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

Другие вопросы по теме

Определить, какая кнопка URL была нажата facebook messenger
Как использовать Facebook Ads Insight API с токеном приложения?
Полосы прокрутки вкладки Facebook
При создании сообщения с изображениями и видео с помощью прикрепленного_медиа в FB Graph API выдается ошибка «Разрешения приложений»
Отправка информации при совместном использовании на FB и FB OG через URL с использованием $ _GET не работает
Флажок FB messenger messaging_optins отправить сообщение пользователю user_ref_id не работает "Вы не можете отправлять сообщения на этот идентификатор"
Ошибка разрешения Facebook возникает, даже если она у меня есть
Ссылка для совместного использования в социальных сетях Предварительный просмотр изображения и текста не работает
Клиент Spring Boot oAuth2 с угловой проблемой CORS
Ошибка API Facebook Marketing: неподдерживаемый запрос на получение. Объект с идентификатором XXXXXX не существует, не может быть загружен из-за отсутствия разрешений