#android #authentication #oauth #linkedin
#Android #аутентификация #oauth #LinkedIn
Вопрос:
Я использую Linkedin для подключения к своему приложению. Мне нужны идентификатор пользователя, токен и token_secret. Я получаю два токена, но не могу получить идентификатор текущего зарегистрированного пользователя!
Строка: p.getId();
отправьте мне значение null.
Вот мой код:
String verifier = intent.getData().getQueryParameter("oauth_verifier");
LinkedInAccessToken accessToken = oAuthService.getOAuthAccessToken(liToken, verifier);
client = factory.createLinkedInApiClient(accessToken);
client.postNetworkUpdate("LinkedIn Android app test");
Person p = client.getProfileForCurrentUser();
System.out.println("TEST " client.getProfileForCurrentUser());
System.out.println("Token " accessToken.getToken());
System.out.println("Secret " accessToken.getTokenSecret());
System.out.println("NOM " p.getLastName() ", PRENOM" p.getFirstName());
Person profile = client.getProfileForCurrentUser(EnumSet.of(ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.CERTIFICATIONS_ID));
//System.out.println("IDDDDD" profile.getId());
Connections connections = client.getConnectionsForCurrentUser();
System.out.println("Total connections fetched:" connections.getTotal());
for (Person person : connections.getPersonList()) {
System.out.println(person.getId() ":" person.getFirstName() " " person.getLastName() ":" person.getHeadline());
}
Помогите! Спасибо!
Ответ №1:
Пожалуйста, замените эту строку,
Person profile = client.getProfileForCurrentUser(EnumSet.of(ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.CERTIFICATIONS_ID));
с,
Person profile = client.getProfileForCurrentUser(EnumSet.of(ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.ID));
Для получения идентификатора ProfileField.ID
следует использовать вместо ProfileField.CERTIFICATIONS_ID
Ответ №2:
Измените это:
Person profile = client.getProfileForCurrentUser(EnumSet.of(ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.CERTIFICATIONS_ID));
//System.out.println("IDDDDD" profile.getId());
с помощью этого:
final Person user_Profile = client.getProfileForCurrentUser(EnumSet.of(ProfileField.ID)); person = client.getProfileById(user_Profile.getId(), EnumSet.of(ProfileField.FIRST_NAME,
ProfileField.LAST_NAME));
System.out.println("IDDDDD" profile.getId());