Не удается получить идентификатор Linkedin после успешного входа в Linkedin в приложении для Android?

#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());