2015-02-03 3 views
-1

Мы намерены перейти на Facebook PHP SDK 4.0.0 с помощью Graph API v.2.2. Я очень новичок в этом новом SDK для Facebook, и я немного поиграю с ним. В этот момент я пытаюсь получить привилегии, например:Как получить токен доступа пользователя Facebook с помощью нового 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.

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

+0

Класс '' FacebookSession' имеет метод 'getToken' - поэтому, как только вы успешно пройдете процесс входа в систему, он предоставит вам токен доступа пользователя. Что касается проверки того, является ли токен еще действительным, он также имеет метод 'validate'. – CBroe

+0

Я видел метод, но в случае, с которым я работаю, пользователь уже зарегистрировался в Facebook. Мне действительно нужно войти в систему, чтобы получить уже действующий токен доступа? Я думал, что было бы лучше не входить в Facebook, если пользователь уже вошел в систему. –

+0

Предположим, что у меня есть токен доступа, прочитанный из базы данных. Я хотел бы проверить его достоверность и, если он уже недействителен, получить новый токен доступа к пользователю facebook. Это невозможно без входа в систему с помощью facebook? –

ответ

1

Класс FacebookSession имеет метод getToken - так как вы успешно прошли поток входа в систему, он даст вам токен доступа пользователя. Что касается проверки того, является ли токен еще действительным, он также имеет метод validate.
И проверка маркера на действительность возможна без входа в систему, вам просто нужно создать сеанс, используя этот токен.

И, к примеру, если пользователь уже выполнил вход в ваше приложение один раз, а затем при последующих вызовах в диалоговое окно входа в систему, они будут перенаправлены прямо из Facebook в ваше приложение без какого-либо дополнительного взаимодействия с пользователем (если они сами вошли в сам Facebook.)

+0

Спасибо, приятель, приветствия –

Смежные вопросы