Мы намерены перейти на Facebook PHP SDK 4.0.0, используя Graph API v.2.2. Я очень новичок в этом новом Facebook SDK и немного поиграю с ним. В данный момент я пытаюсь получить привилегии, вот так:
/* PHP SDK v4.0.0 */
/* make the API call */
Facebook\FacebookSession::setDefaultApplication($appID, $appSecret);
$session = new Facebook\FacebookSession($accessToken);
/* PHP SDK v4.0.0 */
/* make the API call */
$request = new Facebook\FacebookRequest(
$session,
'GET',
'/me/permissions'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
Это прекрасно работает, если у меня есть правильный $appID
, $appSecret
а также $accessToken
ценности. За $appID
а также $appSecret
Не вижу проблем, потому что это настройки уровня приложения, полученные со страницы разработчиков. Тем не менее, я борюсь за то, чтобы получить $accessToken
, Я проводил тестирование с пользователем, у которого есть действительный токен доступа к Facebook, и я прочитал значение из базы данных, но мне интересно, как я могу получить следующую логику:
$accessToken
к действительному токену доступа, полученному из базы данных или, если он недействителен / отсутствует, получен через Facebook SDK.Обратите внимание, что у меня нет проблем с использованием базы данных, поэтому мы можем пропустить этапы загрузки / сохранения токена доступа из / в базу данных. Кто-нибудь знает, как я могу это реализовать?
FacebookSession
у класса есть метод getToken
— поэтому, как только вы успешно пройдете процесс входа в систему, он предоставит вам маркер доступа пользователя. Что касается проверки, если токен все еще действителен, он имеет validate
метод также.
И проверка токена на достоверность возможна без входа в систему, вам просто нужно создать сеанс с использованием этого токена.
И, между прочим, если пользователь уже вошел в ваше приложение один раз, то при последующих вызовах в диалоговом окне входа они будут перенаправлены прямо из Facebook в ваше приложение, без какого-либо дополнительного взаимодействия с пользователем (если они вошли в Сам фейсбук.)
Других решений пока нет …