Php: поиск страниц facebook по имени через facebook php sdk

мой вопрос прост: я хочу отправить ключевое слово в api для поиска страниц, которые имеют одно и то же ключевое слово в имени страницы, и я хочу вернуть все страницы с деталями, такими как каждая страница с количеством лайков и разделом и т. д.

что я делаю, я загружаю facebook php sdk, следую документации и использую следующий код.

я создаю приложение в учетной записи разработчика Facebook и использую идентификатор и секрет приложения (и приложение работает);

    <?php
require_once('facebook/autoload.php'); // change path as needed

$fb = new \Facebook\Facebook([
'app_id' => '*****',
'app_secret' => '******',
'default_graph_version' => 'v2.10',
//'default_access_token' => '{access-token}', // optional
]);

$helper = $fb->getRedirectLoginHelper();
// app directory could be anything but website URL must match the URL   
given in the developers.facebook.com/apps
define('APP_URL', 'http://kout-kw.com/auto_search/testf.php'); 
$permissions = []; // optional

try {
if (isset($_SESSION['facebook_access_token'])) {
    $accessToken = $_SESSION['facebook_access_token'];
} else {
    $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)) {
if (isset($_SESSION['facebook_access_token'])) {
    $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
} else {
    // getting short-lived access token
    $_SESSION['facebook_access_token'] = (string) $accessToken;
    // OAuth 2.0 client handler
    $oAuth2Client = $fb->getOAuth2Client();
    // Exchanges a short-lived access token for a long-lived one
    $longLivedAccessToken =    oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
    $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
    // setting default access token to be used in script
    $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
   }
// redirect the user back to the same page if it has "code" GET variable
if (isset($_GET['code'])) {
    header('Location: ./');
}



// type can be user, group, page or event
$search = $fb->get('/search?q=programming&type=page');
$search = $search->getGraphEdge()->asArray();
foreach ($search as $key) {
    echo $key['name'] . '<br>';
}
// Now you can redirect to another page and use the access token from 
$_SESSION['facebook_access_token']
} else {
// replace your website URL same as added in the
//developers.facebook.com/apps e.g. if you used http instead of https and 
//you used non-www version or www version of your website then you must   
//add 
//   the same here
$loginUrl = $helper->getLoginUrl(APP_URL, $permissions);
echo '<a href = "' . $loginUrl . '">Log in with Facebook!</a>';
}

когда я запускаю код, появляется страница с текстом Войти через Facebook! Я нажимаю на нее и получаю следующую ошибку

Не удается загрузить URL-адрес: домен этого URL-адреса не включен в домены приложения. Чтобы иметь возможность загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле App Domains в настройках вашего приложения.

что мне делать, пожалуйста?

Обновить:

Я решил эту ошибку, я должен был указать URL-адрес перенаправления в настройках входа в facebook, но теперь у меня новая проблема

Facebook SDK возвратил ошибку: проверка подделки межсайтового запроса не удалась. Параметр «состояние» из URL-адреса и сеанса не совпадают.

Любые идеи?


ОБНОВИТЬ Я решил прошлую ошибку, добавив

$_SESSION['FBRLH_state']=$_GET['state'];

проблема в том, что я не получаю ошибки, но следующий код не дает мне никаких результатов?

кто-нибудь знает почему?

    // type can be user, group, page or event
$search = $fb->get('/search?q=programming&type=group');
$search = $search->getGraphEdge()->asArray();
foreach ($search as $key) {
    echo $key['name'] . '<br>';
}

Пожалуйста, не создавайте дубликатов собственных вопросов, особенно вскоре после того, как вы задали первый раз. stackoverflow.com/q/51748735/1427878

CBroe 09.08.2018 08:32

какие-нибудь идеи, пожалуйста?

Omar Samara 09.08.2018 10:47

название этого вопроса предполагает другую проблему, чем тело вопроса ...

luschn 09.08.2018 13:03
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
2
3
523
1

Ответы 1

Перейдите в настройки своего приложения на странице разработчиков facebook, затем перейдите в «Настройки»> «Основные»,

Здесь вы найдете поле App Domains, отмеченное желтым цветом -

Здесь вам нужно указать полное доменное имя, в котором находится ваше приложение.

Тогда все будет работать.

какое значение вы поставили? это может быть проблема с тем, как вы ввели URL.

Sujit Agarwal 09.08.2018 08:31

я пробую (kout-kw.com) с http - тоже не работает, я получаю ту же ошибку

Omar Samara 09.08.2018 08:43

Пожалуйста, проверьте свой код, где вы могли упомянуть URL, отличный от того, который вы настроили в своем приложении.

Sujit Agarwal 09.08.2018 09:25

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