ОСНОВНАЯ ПРОБЛЕМА:. Я хочу, чтобы мое приложение могло совершать вызовы на графике Facebook api для авторизованных пользователей, даже когда пользователь ушел.
Например, я хочу, чтобы пользователь (A) разрешил это приложение, а затем я хочу, чтобы пользователь (B) мог использовать приложение для просмотра информации о пользователях (A). В частности: поле "работа". Да, я запрашиваю эти расширенные разрешения (user_work_history
, friends_work_history
и т.д.). В настоящее время мое приложение имеет доступ к истории работы зарегистрированных пользователей, но не к любой из истории работы друзей других пользователей приложения.
Вот что я знаю уже:
- Добавление параметра
offline_access
в параметр области - это старый способ, и он больше не работает. - Новый способ заключается в "долгоживущих" токенах доступа, описанный здесь. Они продолжаются 60 дней.
-
Мне нужно обменять обычный токен доступа, чтобы получить новый расширенный токен. В документации FB говорится:
https://graph.facebook.com/oauth/access_token?
client_id = APP_ID & client_secret = APP_SECRET &ы; grant_type = fb_exchange_token & fb_exchange_token = EXISTING_ACCESS_TOKEN
Вот что я не знаю (и я надеюсь, что вы мне скажете): Как получить расширенный токен доступа (aka "долгоживущий" ) с помощью PHP PHP SDK? В настоящее время мой код выглядит следующим образом:
$facebook->getAccessToken();
Есть ли такая вещь?:
$facebook->getExtendedAccessToken();
Если нет, это то, что я должен делать?
$accessToken = $facebook->getAccessToken();
$extendedAccessToken = file_get_contents("https://graph.facebook.com/oauth/access_token?
client_id={$appId}&
client_secret={$secret}&
grant_type=fb_exchange_token&
fb_exchange_token={$accessToken}"
);
Я пробовал, и он не работает. Я получаю эту ошибку:
Warning: file_get_contents(https://graph.facebook.com/oauth/access_token? client_id=#######& client_secret=#########& grant_type=fb_exchange_token& fb_exchange_token=##########) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /...
Работает ли он по-другому, если я переключусь на FQL вместо графика api? Я много раз читал документацию по Facebook, но PHP файл sdk не был полностью задокументирован, и я не могу найти примеров того, как это должно работать.