Я пытаюсь получить пользователя age_rage от входа в Facebook.[Android]
Я запросил разрешение пользователя Facebook, используя этот код
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_age_range", "email"))
Я протестировал его с 2 учетными записями Facebook.
С учетной записью A (создано 2 года назад), Я не могу получить age_range.
С учетной записью B (созданной недавно) я получаю age_range очень хорошо.
А вот код, который я использую:
LoginManager.getInstance().loginBehavior = LoginBehavior.NATIVE_WITH_FALLBACK
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_age_range", "email"))
LoginManager.getInstance().registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
override fun onCancel() { ... }
override fun onError(error: FacebookException) {...}
override fun onSuccess(result: LoginResult) {
GraphRequest(
result.accessToken,
"me?fields=name,email,age_range&format=json&access_token=${result.accessToken}",
null,
HttpMethod.GET ,
{ response ->
safeLog("SAFE_LOG", response.jsonObject.toString())
}).executeAsync()
}
})
Я почти уверен, что проблема в том, что Facebook не предоставил мне это разрешение user_age_range, потому что в диалоговом окне с запросом разрешения для учетной записи A age_range вообще не было в списке, но оно было указано в учетной записи B.
Не могли бы вы, ребята, сказать мне, что пошло не так в моем коде?
ОБНОВЛЕНИЕ:
Решение, которое я нашел раньше, больше не работает, но я обнаружил разницу между двумя учетными записями.
Тот, у кого age_range, имеет источник токена доступа FACEBOOK_APPLICATION_SERVICE
Тот, у кого нет age_range, имеет источник токена доступа FACEBOOK_APPLICATION_WEB
Я уже исследовал из офисаал док здесь https://developers.facebook.com/docs/reference/android/current/class/AccessTokenSource
но я до сих пор не знаю, в чем причина проблемы?