2013-05-23 12 views
5

Sto cercando di ottenere l'indirizzo email da utente linkedin dopo l'autenticazione ora sto ottenendo il profilo di base ma non ricevo l'indirizzo email.Non si ottiene l'indirizzo email da linkedin?

Uso il file jar http://code.google.com/p/linkedin-j/downloads/list per l'autenticazione.

Ho letto attentamente questo documento ma non lo uso per intero http://oodlestechnologies.com/blogs/recent-changes-in-linkedin-api.

Di seguito il codice per le proprietà del file jar: -

# API URLs 
########## 
# Profile API 
com.google.code.linkedinapi.client.getProfileForCurrentUser=http://api.linkedin.com/v1/people/~{profileFields} 
com.google.code.linkedinapi.client.getProfileById=http://api.linkedin.com/v1/people/id={id}{profileType}{profileFields} 
com.google.code.linkedinapi.client.getProfileByUrl=http://api.linkedin.com/v1/people/url={url}{profileType}{profileFields} 

#OAuth URLs 
########### 
com.google.code.linkedinapi.client.oauth.requestToken=https://api.linkedin.com/uas/oauth/requestToken 
com.google.code.linkedinapi.client.oauth.accessToken=https://api.linkedin.com/uas/oauth/accessToken 
com.google.code.linkedinapi.client.oauth.authorize=https://www.linkedin.com/uas/oauth/authorize 
com.google.code.linkedinapi.client.oauth.invalidateToken=https://api.linkedin.com/uas/oauth/invalidateToken 

quando i m cambiamento su qualsiasi cosa su di sopra e la creazione di vaso il suo errore spettacolo.

ora Im mostrato il mio codice: -

void startAutheniticate() { 

     System.out.println("OAUTH_CALLBACK_URL " + OAUTH_CALLBACK_URL); 

     final LinkedInRequestToken liToken = oAuthService 
       .getOAuthRequestToken(OAUTH_CALLBACK_URL); 
     final String uri = liToken.getAuthorizationUrl(); 
     getSharedPreferences(OAUTH_PREF, MODE_PRIVATE).edit() 
       .putString(PREF_REQTOKENSECRET, liToken.getTokenSecret()) 
       .commit(); 


     Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
     startActivity(i); 
    } 


void finishAuthenticate(final Uri uri) { 
     if (uri != null && uri.getScheme().equals(OAUTH_CALLBACK_SCHEME)) { 
      final String problem = uri.getQueryParameter(OAUTH_QUERY_PROBLEM); 
      if (problem == null) { 
       final SharedPreferences pref = getSharedPreferences(OAUTH_PREF, 
         MODE_PRIVATE); 
       final LinkedInAccessToken accessToken = oAuthService 
         .getOAuthAccessToken(
           new LinkedInRequestToken(uri 
             .getQueryParameter(OAUTH_QUERY_TOKEN), 
             pref.getString(PREF_REQTOKENSECRET, 
               null)), 
           uri.getQueryParameter(OAUTH_QUERY_VERIFIER)); 
       pref.edit() 
         .putString(PREF_TOKEN, accessToken.getToken()) 
         .putString(PREF_TOKENSECRET, 
           accessToken.getTokenSecret()) 
         .remove(PREF_REQTOKENSECRET).commit(); 
       showCurrentUser(accessToken); 
      } else { 
       Toast.makeText(this, 
         "Appliaction down due OAuth problem: " + problem, 
         Toast.LENGTH_LONG).show(); 
       finish(); 
      } 

     } 
    } 


void clearTokens() { 
     getSharedPreferences(OAUTH_PREF, MODE_PRIVATE).edit() 
       .remove(PREF_TOKEN).remove(PREF_TOKENSECRET) 
       .remove(PREF_REQTOKENSECRET).commit(); 
    } 

    void showCurrentUser(final LinkedInAccessToken accessToken) { 

     final LinkedInApiClient client = factory 
       .createLinkedInApiClient(accessToken); 
     try { 

      final Person profile = client.getProfileForCurrentUser(EnumSet.of(
        ProfileField.ID, ProfileField.FIRST_NAME, 
        ProfileField.LAST_NAME, ProfileField.HEADLINE, 
        ProfileField.INDUSTRY, ProfileField.PICTURE_URL, 
        ProfileField.DATE_OF_BIRTH, ProfileField.LOCATION_NAME, 
        ProfileField.MAIN_ADDRESS, ProfileField.LOCATION_COUNTRY 
        )); 

      // ///////////////////////////////////////////////////////// 
      // here you can do client API calls ... 
      // client.postComment(arg0, arg1); 
      // client.updateCurrentStatus(arg0); 
      // or any other API call (this sample only check for current user 
      // and shows it in TextView) 
      // ///////////////////////////////////////////////////////// 


      System.out.println("p => " + profile); 
      System.out.println("PersonID : " + profile.getId()); 
      System.out.println("Name : " + profile.getFirstName() + " " 
        + profile.getLastName()); 
      System.out.println("Headline : " + profile.getHeadline()); 
      System.out.println("Industry : " + profile.getIndustry()); 
      System.out.println("Picture : " + profile.getPictureUrl()); 
      DateOfBirth dateOfBirth = profile.getDateOfBirth(); 
      System.out.println("DateOfBirth : " + dateOfBirth.getDay() + "/" 
        + dateOfBirth.getMonth() + "/" + dateOfBirth.getYear()); 
      System.out.println("MAin Address : " + profile.getMainAddress()); 
      Location location = profile.getLocation(); 
      System.out.println("Location:" + location.getName() + " - " 
        + location.getCountry().getCode()); 
      // get_from_last 


      Toast.makeText(LITestActivity.this, "Wait...", Toast.LENGTH_LONG).show(); 



      startActivity(new Intent(LITestActivity.this, 
        UserProfileScreen.class) 
        .putExtra("get_from_last", "1") 
        .putExtra("getId", profile.getId()) 
        .putExtra("getEmail", "[email protected]") 
        .putExtra("getFirstName", profile.getFirstName()) 
        .putExtra("getLastName", profile.getLastName()) 
        .putExtra("getHeadline", profile.getHeadline()) 
        .putExtra("getPictureUrl", profile.getPictureUrl()) 
        .putExtra(
          "dob", 
          dateOfBirth.getDay() + "/" + dateOfBirth.getMonth() 
            + "/" + dateOfBirth.getYear())); 

      finish(); 
     } catch (LinkedInApiClientException ex) { 
      clearTokens(); 
      Toast.makeText(
        this, 
        "Appliaction down due LinkedInApiClientException: " 
          + ex.getMessage() 
          + " Authokens cleared - try run application again.", 
        Toast.LENGTH_LONG).show(); 
      pd.dismiss(); 
      finish(); 
     } 

    } 

    int i = 0; 

    public void onNewIntent(Uri intent) { 

     if (i == 0) { 
      i++; 
      finishAuthenticate(intent); 
     } else { 
      i++; 
     } 
     System.out.println("i => " + i); 
    } 

ma im bloccato come ottenere indirizzo email in modo uno può aiutarmi

risposta

17

Anche se la sua una vecchia questione, credo che il suo valore di risposta. Ho faticato molto per trovare il modo di recuperare l'indirizzo email dell'utente da linkedin usando la libreria linkedin-j-android. Sfortunatamente non sono riuscito a trovare nessuna soluzione pronta per l'uso, quindi ho apportato modifiche alle fonti della libreria e le ho reimballate per utilizzarle nella mia app. È possibile scaricare la libreria da questo collegamento: https://dl.dropboxusercontent.com/u/46373731/linkedin-j-android.jar

È possibile utilizzare ProfileField.EMAIL_ADDRESS per recuperare l'indirizzo di posta elettronica.

+0

Il suo lavoro per me ora yepeeeeee !!!!!!!!! – duggu

+0

Come posso ottenere il numero di contatto? – Arpit

+1

https://github.com/jenuprasad/LinkedinEmailIdSampleapp – jenuine

Problemi correlati