Facebook: Как получить идентификатор приложения из токена доступа пользователя - с помощью /app? Access_token = TOKEN?

Мы разрешаем пользователю получать доступ к нашему серверу (используя REST api over https с ответами json), используя только токен доступа facebook в качестве учетных данных, поэтому мы хотим сделать две вещи:

  • проверить токен доступа и найти идентификатор пользователя - это просто вызов https://graph.facebook.com/me?access_token=TOKEN

  • Убедитесь, что этот токен доступа принадлежит нашему приложению facebook. Вы можете позвонить https://graph.facebook.com/app?access_token=TOKEN, но это, кажется, недокументированная функция (и такая, которая иногда довольно медленная).

Может ли кто-нибудь сказать мне, действительно ли это стандартный метод, который, вероятно, останется там? Или есть другой способ сделать то, что мы хотим сделать: проверить, что токен доступа пользователя действителен и поступает из нашего приложения facebook.

Вы можете позвонить мне/разрешениям и мне? fields = installed, но ни один из них, похоже, не говорит мне, какое приложение facebook мы проверяем.

+4
источник поделиться
3 ответа

Вы можете передать signed_request insted из access_token с каждым запросом. Параметр signed_request основан на секретном ключе вашего приложения, и вы можете просто проверить его. Прочитайте документацию о подписанном запросе.

+2
источник

Вы должны реализовать поток аутентификации, как описано в docs (на стороне клиента или сервера). В основном вы получаете новый токен доступа, аутентифицируя пользователя с помощью своего приложения и используя этот токен для запросов на ваш сервер. Таким образом, вы можете быть уверены, что токен "принадлежит" вашему приложению. Шаги:

  • Инициализируйте SDK Facebook по вашему выбору с помощью вашего идентификатора приложения.
  • Убедитесь, что пользователь уже разрешил ваше приложение.
  • Если пользователь уже разрешил ваше приложение, вы получаете свой идентификатор пользователя Facebook вместе с токеном (который "принадлежит" вашему приложению), если нет: аутентифицируйте пользователя и получите токен.

docs предоставляет вам пример кода и множество деталей:

UPDATE:

Вы упомянули описанную здесь здесь (прокрутите вниз до 2. Сделайте запросы к API):

Маркер доступа к приложениям позволяет вам делать запросы как приложение, а не Пользователь. Чтобы получить информацию о вашем приложении, выполните HTTP ПОЛУЧИТЬ:
https://graph.facebook.com/app?access_token=APP_ACCESS_TOKEN

Следовательно, функция, вероятно, останется.

+3
источник

Это старо, но у меня недавно были те же заботы. Я думаю, что самый простой способ сделать это - проверить токен доступа с помощью debug_token.

GET graph.facebook.com/debug_token?
 input_token={token-to-inspect}
 &access_token={app-token-or-admin-token}

Ссылка: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#checktoken

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос