доступ к приложению facebook с помощью токена приложения

У меня небольшая проблема с получением доступа к некоторым рекламным данным через приложение

У меня есть эти два сценария:

Авторизоваться

<?phpinclude_once __DIR__ . '/includes/connect.php';
require_once __DIR__ . '/vendor/autoload.php';

use Facebook\Facebook;

session_start();

$facebook = new Facebook([
'app_id' => 'XXX',
'app_secret' => 'XXX',
'default_graph_version' => 'v2.5',
]);

$helper = $facebook->getRedirectLoginHelper();

$permissions = ['ads_read'];
$loginUrl = $helper->getLoginUrl('http://sparnorddashboard.local:8080/fb_callback.php', $permissions);

echo '<a href="'.  $loginUrl .'">Log ind</a>';

?>

Перезвоните

<?php
include_once __DIR__ . '/includes/connect.php';
require_once __DIR__ . '/vendor/autoload.php';

use Facebook\Facebook;

session_start();

$facebook = new Facebook([
'app_id' => 'XXX',
'app_secret' => 'XXX',
'default_graph_version' => 'v2.5',
]);

$helper = $facebook->getRedirectLoginHelper();

try {

$access_token = $helper->getAccessToken();} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo $e->getMessage();
exit;
}

if(!isset($access_token)) {

if($helper->getError()) {

header("HTTP/1.0 401 Unauthorized");

echo "Error: " . $helper->getError() . "\n";
echo "Error Code: " . $helper->getErrorCode() . "\n";
echo "Error Reason: " . $helper->getErrorReason() . "\n";
echo "Error Description: " . $helper->getErrorDescription() . "\n";

} else {

header('HTTP/1.0 400 Bad Request');
echo 'Bad request';

}

exit;

}

$oAuth2Client = $facebook->getOAuth2Client();
$tokenMetaData = $oAuth2Client->debugToken($access_token);

$tokenMetaData->validateAppId("1694068770828491");
$tokenMetaData->validateExpiration();if(!$access_token->isLongLived()) {

try {

$access_token = $oAuth2Client->getLongLivedAccessToken($access_token);

} catch(Facebook\Exceptions\FacebookSDKException $e) {

$e->getMessage();
exit;

}

}

$_SESSION['fb_access_token'] = (string) $access_token;

header('Location: http://sparnorddashboard.local:8080/fetchads.php?callback=callback');

?>

Но для этого будет использоваться клиентский токен пользователя. Как его настроить, чтобы я мог использовать токен доступа к приложению? Я не хочу, чтобы пользователь входил в систему и принимал разрешения, так как это для внутренней панели мониторинга, которая работает на телевизионном мониторе, который будет считывать рекламные данные — ничего больше.

0

Решение

Вы не можете использовать свой токен доступа APP для ads_read, Если вы не хотите получать его через логин пользователя, то другой способ — через Graph Api Explorer.

Предполагая, что вы уже создали Рекламный аккаунт :

  1. Войти в График Api Explorer.
  2. Перейдите в свое приложение.
    введите описание изображения здесь

  3. Нажмите «Получить токен», а затем «Получить токен доступа пользователя».
    введите описание изображения здесь

  4. Нажмите вкладку «Расширенные разрешения» и проверьте ads_read и нажмите Получить токен доступа.
    введите описание изображения здесь

  5. Предоставьте себе запрошенные вами разрешения.
    введите описание изображения здесь

  6. Используйте токен доступа пользователя, который будет представлен вам в поле ввода формы токена доступа:
    введите описание изображения здесь


Используйте сгенерированный токен доступа для вашего внутреннего приложения / скрипта панели мониторинга, например:

// Add to header of your file
use FacebookAds\Api;

// Initialize a new Session and instantiate an Api object
Api::init(
'{your-app-id}',
'{your-app-secret}',
$_SESSION['facebook_access_token'] // The generated access token
);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector