fb_exchange_token для PHP работает только после того, как пользователь удалит приложение

Для приложения Facebook, которое я создаю, мне требуется больше времени, чем по умолчанию 1 – 2 часа.

Я не хочу использовать «offline_access», так как он отключает пользователей от подписки на приложение и теперь обесценивается.

На дорожной карте разработчика говорится о «fb_exchange_token», который продлит срок действия токена доступа до 1 месяца.

Поток:

  • Вход пользователя

  • Вызовите … / oauth / access_token? … & grant_type = fb_exchange_token & fb_exchange_token = …

  • Ток доступа теперь длится 1 месяц

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

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

Я добавил правильную настройку расширенного / переноса для приложения Facebook, как описано в документации. Похоже, что это не очень помогает, кроме блога dev.

Любая помощь будет оценена.

FYI: Я использую самый современный PHP SDK, а код для получения нового токена доступа – это стандартный запрос cURL, указывающий на следующий URL:

https://graph.facebook.com/oauth/access_token?client_id= {APPID} & client_secret = {APPSECRET} & grant_type = fb_exchange_token & fb_exchange_token = {ACCESSTOKEN}

еще раз спасибо

У меня такая же проблема. Еще одна вещь, которую я заметил: пользователи, которые ранее имели разрешение offline_access, также могли получить 60-дневные токены, а также новые авторизованные пользователи.

Я открыл ошибку, чтобы попытаться получить ответ от FB: https://developers.facebook.com/bugs/241373692605971

Я столкнулся с этой проблемой и обнаружил, что то, что сейчас работает только для меня, – это удаление приложения из моего профиля и повторное добавление приложения, и это позволило мне создать 60-дневный токен.