Мои проблемы, как я могу сделать токен доступа из SDK 5 или вручную? Когда я генерирую его из инструментов Grapth, он работает. Но его срок действия истекает через 60 дней. Я хочу генерировать ir для каждой загрузки страницы или что-то вроде того. Я просто хочу получить страницу: new_like_count …
Вот мой код с использованием SDK 5:
// FACEBOOK PAGE LIKES
$fb = new Facebook([
'app_id' => config('facebook.app.id'),
'app_secret' => config('facebook.app.secret'),
'default_graph_version' => 'v2.5'
]);
$app = new FacebookApp(
config('facebook.app.id'),
config('facebook.app.secret')
);
$request = new FacebookRequest(
$app,
config('facebook.access_token'),
'GET',
'/me/?fields=new_like_count'
);
$response = $fb->getClient()->sendRequest($request);
//dd($response);
$view['facebook_likes'] = $response->getGraphNode()['new_like_count'];
Постскриптум Я новичок в этом. Так что мне нужна помощь 🙂
Вы можете получить токен доступа на Facebook, используя getAccessToken()
метод фейсбука SDK.
$pageId = 'xxxxxxxxxxxxxxx'; // put your page id here
$page_info = $fb->api("/$pageId?fields=access_token"); // page info in array
echo 'access token : '. $page_info['access_token']; // get access token from array
Или же
echo 'access token : '. $access_token = $fb->getAccessToken(); // get access token directly
Оно работает:
// FACEBOOK PAGE LIKES
$fb = new Facebook([
'app_id' => config('facebook.app.id'),
'app_secret' => config('facebook.app.secret'),
'default_graph_version' => 'v2.5'
]);
$response = $fb->get(
config('facebook.page.id').'/?fields=likes',
$fb->getApp()->getAccessToken()->getValue()
);
$view['facebook_likes'] = $response->getGraphNode()['likes'];
Единственное, что я могу изменить, это от:
config('facebook.page.id').'/?fields=new_like_count',
в
config('facebook.page.id').'/?fields=likes',
Я понял: доступ к защищенному содержимому страницы доступен, когда пользователь вошел в систему и имеет разрешения.