Facebook Android SDK: получить пользователя по идентификатору приложения - PullRequest
0 голосов
/ 11 января 2019

Я работаю с Facebook Android SDK и пытаюсь реализовать следующую схему:

  1. Мое приложение для Android запрашивает у пользователя доступ к его учетной записи Facebook
  2. Я получаю токен доступа пользователя как результат входа в систему
  3. Я передаю этот токен (простой String) своему бэкэнд-серверу
  4. На моем сервере мне нужно выяснить, кто этот пользователь, и если на моем бэкэнд-сервере есть учетная запись, которая связана с учетной записью этого пользователя в Facebook, разрешите пользователю войти в систему, в противном случае отобразится сообщение об ошибке.

Моя проблема в том, что из токена доступа я могу получить только область приложения userId, которая не может быть использована моим бэкэндом для доступа к пользовательской информации с сервера facebook. Код, который я использую для обработки результатов входа в систему, довольно прост:

facebookButton.registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
        override fun onSuccess(result: LoginResult?) {
            //Pass token to my backend
            loginByToken(result?.accessToken?.token!!, FACEBOOK_PROVIDER)
        }

        override fun onCancel() {
            Toast.makeText(context, "Facebook login cancelled", Toast.LENGTH_SHORT).show()
        }

        override fun onError(error: FacebookException?) {
            Toast.makeText(context, error.toString(), Toast.LENGTH_SHORT).show()
        }
    })

Я также использую следующую схему авторизации: enter image description here

Итак, мой вопрос: как мне получить пользовательские данные на моем внутреннем сервере? Я думаю, что было бы целесообразно, если бы я также предоставил свой идентификатор приложения для запроса пользовательских данных, но я просмотрел документацию на Facebook и не нашел способа сделать это

1 Ответ

0 голосов
/ 11 января 2019

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

/me?fields=id,name,...&access_token=xxx

Для идентификации возвращающихся пользователей вам нужен только идентификатор области приложения. Если вы хотите идентифицировать пользователей в разных приложениях: https://developers.facebook.com/docs/apps/for-business/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...