#android #facebook #facebook-graph-api
#Android #Facebook #facebook-graph-api
Вопрос:
Я использую facebook login в своем приложении, и мне удалось получить необходимую информацию о вошедшем в систему пользователе (имя и фамилия, идентификатор. пол и т. Д.), Чтобы я мог открыть определенный профиль с этим идентификатором. поскольку я работаю с последней версией Facebook SDK, я не могу получить идентификатор пользователя.
Я заметил, что в этом SDK есть несколько изменений, но проблема в том, что единственное, чего мне сейчас не хватает, — это идентификатор пользователя. Я могу получить другую информацию, кроме идентификатора — она дает мне неправильный идентификатор (17 цифр).
Когда я проверяю его через браузер (используя graph вместо www) Я вижу, что идентификатор пользователя содержит только 10 цифр.
Вот код:
private void onSessionStateChange(final Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Log.i(TAG, "Logged in...");
@SuppressWarnings("deprecation")
RequestAsyncTask request = Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (session == Session.getActiveSession()) {
if (user != null) {
user_ID = user.getId();//user id
profileName = user.getName();//user's profile name
token = session.getAccessToken();
.
.
.
}
else
{
.
.
}
}
}
});
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
}
}
Ответ №1:
Проблема заключается в обновлении facebook SDK до graph API версии 2.0. Facebook предоставляет уникальный идентификатор для пользователей, который меняется между приложениями, что означает, что данный идентификатор не является исходным идентификатором пользователя.
Изменения с версии v1.0 на версию v2.0
Идентификаторы пользователей в приложении: для лучшей защиты информации пользователей, когда люди заходят в версию вашего приложения, которая была обновлена для использования Graph API версии 2.0, Facebook теперь будет выдавать идентификатор в приложении, а не исходный идентификатор этого пользователя.
Мое решение использует браузер, а не приложение facebook. URL-адрес должен выглядеть следующим образом:
http://www.facebook.com/GivenUserId
и код:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/" userid)));