2011-11-02 57 views
2

我使用LinkedIn連接到我的應用程序。我需要userId,令牌和token_secret。我得到了兩個令牌,但我無法獲取當前登錄的用戶的ID!在Android應用上使用Linkedin成功登錄後無法獲取Linkedin ID?

該行: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()); 
    } 

幫助!謝謝!

回答

0

請更換這條線,

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

0

修改此:

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()); 
相關問題