Я работаю с Facebook Android SDK и пытаюсь реализовать следующую схему:
- Мое приложение для Android запрашивает у пользователя доступ к его учетной записи Facebook
- Я получаю токен доступа пользователя как результат входа в систему
- Я передаю этот токен (простой
String
) своему бэкэнд-серверу
- На моем сервере мне нужно выяснить, кто этот пользователь, и если на моем бэкэнд-сервере есть учетная запись, которая связана с учетной записью этого пользователя в 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()
}
})
Я также использую следующую схему авторизации:
Итак, мой вопрос: как мне получить пользовательские данные на моем внутреннем сервере? Я думаю, что было бы целесообразно, если бы я также предоставил свой идентификатор приложения для запроса пользовательских данных, но я просмотрел документацию на Facebook и не нашел способа сделать это