Как я могу получить обзоры / оценки страниц через Facebook Graph API?

Я пытаюсь получить массив отзывов клиентов (рейтинги?) С определенной страницы Facebook.

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

У меня проблема в том, что я не могу использовать разрешение для предоставления шагов и скринкаста, потому что любая попытка сделать это приводит к тому, что API говорит мне, что ему нужно это разрешение. Так что немного парадокса на самом деле.

Я предполагаю, что должен быть какой-то способ воспроизвести шаги, необходимые в тестовой среде, но настроить тестовое приложение и использовать app_id а также app_secret из тестового приложения по-прежнему приводила к следующей ошибке:

Неустранимая ошибка: необработанное исключение ‘Facebook \ Exceptions \ FacebookAuthorizationException’ с сообщением ‘(# 200) Требуется разрешение manage_pages для управления объектом’

Мой код выглядит следующим образом:

<?php
$fb = new Facebook\Facebook([
'app_id' => $test_app_id,
'app_secret' => $test_app_secret,
'default_graph_version' => 'v2.8',
]);

if (isset($_GET['code'])) {
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

if (isset($accessToken)) {
// Logged in!
$_SESSION['facebook_access_token'] = (string) $accessToken;
}
}

if (!isset($_SESSION['facebook_access_token'])) {
$helper = $fb->getRedirectLoginHelper();
$permissions = ['manage_pages'];
$loginUrl = $helper->getLoginUrl($site_url.'/fb-test.php', $permissions);
echo '<a href="' . $loginUrl . '" target="_blank">Log in with Facebook!</a>';
exit;
}
$access_token = $_SESSION['facebook_access_token'];

$response = $fb->get('/'.$page_id.'?fields=access_token', $access_token);
$page_access_token = $response->getDecodedBody()['access_token'];

$ratings = $fb->get('/'.$page_id.'/ratings', $page_access_token);

var_dump($ratings);

Изменить (следующий комментарий от luschn)

Я изменил свой код, чтобы включить следующее, но мне все еще говорят, что manage_pages разрешение требуется.

<?php
$response = $fb->sendRequest(
'GET',
'/'.$page_id.'?fields=access_token',
array (
'user' => $user_id,
'role' => 'administrators',
'state' => rand(0,9999999)
),
$access_token
);
$page_access_token = $response->getDecodedBody()['access_token'];

$response = $fb->sendRequest(
'GET',
'/'.$page_id.'/ratings',
array (
'user' => $user_id,
'role' => 'administrators',
),
$page_access_token
);
echo '<pre>'.print_r($response,true).'</pre>';
exit;

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]