2013-05-23 6 views
5

Я пытаюсь получить адрес электронной почты от пользователя linkedin после аутентификации, теперь я получаю базовый профиль, но не получаю адрес электронной почты.Не получать адрес электронной почты от linkedin?

Я использую файл http://code.google.com/p/linkedin-j/downloads/list jar для аутентификации.

Я прочитал этот документ полностью, но не использовал полный для меня http://oodlestechnologies.com/blogs/recent-changes-in-linkedin-api.

Ниже кода для свойств файлов 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 

, когда я м изменения на что-либо на выше и создает банку его показать ошибки.

теперь им показали мой код: -

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); 
    } 

, но им застрял, как получить адрес электронной почты, может ли один помочь мне

ответ

17

Даже если его старый вопрос, я думаю, что его ценность для ответ. Я изо всех сил пытался найти способ получить адрес электронной почты пользователя из linkedin с помощью linkedin-j-android library. К сожалению, я не мог найти готового к использованию решения, поэтому я внес изменения в источники библиотеки и повторно упаковал его для использования в моем приложении. Вы можете скачать библиотеку по этой ссылке: https://dl.dropboxusercontent.com/u/46373731/linkedin-j-android.jar

Вы можете использовать ProfileField.EMAIL_ADDRESS для получения адреса электронной почты.

+0

Его работа для меня теперь yepeeeeee !!!!!!!!! – duggu

+0

Как я могу получить контактный номер? – Arpit

+1

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

Смежные вопросы