3

是否有关于如何导入 Yahoo! 的任何库或至少一些文档或示例?使用 java 和 OAuth 的联系人?

在我的网站中,我需要显示/获取雅虎联系人(使用 oauth)

有没有例子。

4

1 回答 1

1

没有客户端库。您可以通过两个步骤检索联系人:

步骤1:

使用 OAuth1 获取用户的 'TOKEN' 和 'TOKEN SECRET'。一些图书馆是抄写员路标

第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();
}
于 2013-09-17T09:59:22.880 回答