2013-09-17 3 views
3

есть ли какая-либо библиотека или хотя бы какая-то документация или пример о том, как импортировать Yahoo! контакты с использованием java и OAuth?Java: Yahoo contact API

на моем сайте мне нужно, чтобы отобразить/получить контакты Yahoo (с OAuth)

есть ли пример.

+0

Кажется дубликат http://stackoverflow.com/questions/397933/taking-contact-list-from- hotmail-gmail-yahoo-in-java – MansoorShaikh

+0

Я ищу клиентскую библиотеку, например google имеет Gdata. –

ответ

1

Нет клиентской библиотеки. Вы можете получить контакты в два этапа:

Шаг 1:

Получение «СИМВОЛ» и «токена,» от пользователя, используя OAuth1. Некоторые библиотеки: scribe и signpost.

Шаг 2:

После получения этих маркеров вы должны получить Yahoo ID пользователя.

Пример: (я использую для этого указатель)

OAuthConsumer consumer = new DefaultOAuthConsumer('YOUR CLIENT ID', 'YOUR CLIENT SECRET'); 
    URL url = new URL("http://social.yahooapis.com/v1/me/guid?format=json"); 
    HttpURLConnection request1 = (HttpURLConnection) url.openConnection(); 
    consumer.setTokenWithSecret('TOKEN', 'TOKEN SECRET'); 
    consumer.sign(request1); 
    request1.connect(); 
    String responseBody = convertStreamToString(request1.getInputStream()); 

После этого, вы должны использовать Yahoo ID пользователя извлеченного от пользователя, чтобы получить контакты пользователя.

Пример:

OAuthConsumer consumer = new DefaultOAuthConsumer('YOUR CLIENT ID', 'YOUR CLIENT SECRET'); 
    URL url = new URL("http://social.yahooapis.com/v1/user/YAHOO_USER_ID/contacts?format=json"); 
    HttpURLConnection request1 = (HttpURLConnection) url.openConnection(); 
    consumer.setTokenWithSecret('TOKEN', 'TOKEN SECRET'); 
    consumer.sign(request1); 
    request1.connect(); 
    String responseBody = convertStreamToString(request1.getInputStream()); 

Способ преобразования потока, используемого выше:

public static String convertStreamToString(InputStream is) throws UnsupportedEncodingException { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append(line).append("\n"); 
     } 
    } catch (IOException e) { 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
     } 
    } 
    return sb.toString(); 
} 
+0

Я использовал OAuth2 для импорта контактов gmail, не могу ли я использовать OAuth 2 со значком? –

+0

@SumitD Yahoo не поддерживает OAuth2, он поддерживает только OAuth1. – Jhanvi