`
pqcc
  • 浏览: 124772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获取msn好友列表

    博客分类:
  • JAVA
阅读更多
基于 JMSN 写了一个 MsnHelper 。借助getBuddyList(String userName,String password) 方法即可轻松查询所有好友列表。
JMSN 下载地址:http://sourceforge.net/project/showfiles.php?group_id=47932。使用其中的 msnm.jar 文件即可。
另谁有 GTalk , Yahoo 等其他聊天工具的 Helper ,希望能分享一下 ,谢谢!

package com.pqcc.test;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import rath.msnm.BuddyGroup;
import rath.msnm.BuddyList;
import rath.msnm.GroupList;
import rath.msnm.MSNMessenger;
/**
*
* @author pqcc
*
*/
public class MsnHelper {

/**
*   getGroups(String userName,String password)    查询所有的 msn 分组。
*   getBuddyList(String userName,String password) 查询所有好友.(其他查询在线好友也雷同).
* @param args
*/
private static Logger log = Logger.getLogger(MsnHelper.class.getName());
private MSNMessenger msn = null;
public static void main(String[] args)
{
MsnHelper ms = new MsnHelper();
String msnAddress = JOptionPane.showInputDialog("请输入你的MSN");
String password = JOptionPane.showInputDialog("请输入你的密码");
List<String> buddyList = ms.getBuddyList(msnAddress,password);
if(buddyList != null)
{
for(String name:buddyList)
{
log.info("Buddy :"+name);
}
}
}

public void setMsnMessager(String userName,String password)
{
this.msn = new MSNMessenger(userName,password);

}
public MSNMessenger getMsnMessager()
{
return msn;
}
/**
* Login ur msn base on username and password.
* @param userName
* @param password
*/
public void login(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
msn.login();
}
/**
* Get all of ur msn group by username and password. (推荐)
* @param userName
* @param password
* @return all ur msn group .
*/
public List<String> getGroups(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
if(!msn.isLoggedIn())
{
login(userName,password);
}
return getGroups(msn);
}
/**
* Get all of ur buddy by username and password. (推荐)
* @param userName
* @param password
* @return All the buddy
*/
public List<String> getBuddyList(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
if(!msn.isLoggedIn())
{
login(userName,password);
}
return getBuddyList(msn);
}
/**
* Get all of ur buddy  group by MSNMessage.(不推荐)
* @param msn
* @return
*/
public List<String> getGroups(MSNMessenger msn)
{
if(msn == null)
return null;
if(!msn.isLoggedIn())
{
log.warn("Please set the MSNMessge");
msn.login();
}
BuddyGroup buddyGroup =   msn.getBuddyGroup();
GroupList groupList = buddyGroup.getGroupList();
Iterator groupIterm = groupList.iterator();
List list = null;
while(groupIterm.hasNext())
{
list = (list == null)?new ArrayList():list;
list.add(groupIterm.next().toString());
}
return list;
}
/**
* Get all of ur buddy  by MSNMessage.(不推荐,)
* @param msn
* @return
*/
public List<String> getBuddyList(MSNMessenger msn)
{
if(msn == null)
{
log.warn("Please set the MSNMessge");
return null;
}
if(!msn.isLoggedIn())
{
msn.login();
}
BuddyGroup buddyGroup =   msn.getBuddyGroup();
BuddyList buddyList = buddyGroup.getForwardList();
List list = null;
// check.
if(buddyList == null || buddyList.size()<1)
return null;

for(int i=0;i<buddyList.size();i++)
{
list = (list == null)?new ArrayList():list;
String fname = buddyList.get(i).getLoginName();
list.add(fname);
}
return list;
}
}


运行结果:

Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@msn.com
1
2
分享到:
评论
13 楼 hanyu332 2011-08-12  
接口应该过时了
12 楼 energykey 2009-03-17  
先收藏一个,日后必有用。
11 楼 yangwn 2009-01-19  
我将您的code执行了,怎么没有取到好友的列表呢?
执行后的结果为:
“URL=login=******@hotmail.com&passwd=******&sec=&mspp_shared=0&padding=”
请大侠解释一下。谢谢!
10 楼 yj302148 2008-10-13  
ulliang 写道

不好用,一直报911错误,身份验证错误异常

是啊
我跟你一样的哦。
9 楼 ulliang 2008-10-13  
不好用,一直报911错误,身份验证错误异常
8 楼 geek87 2008-09-18  
谢谢了,我先。好东西呀
7 楼 yewen001 2008-08-25  
说错了````,别的方法调用getBuddyList方法,都先执行完了,因为getbuddylist方法中带有Thread所以这个方法还是不太好`````````````````````
6 楼 yewen001 2008-08-25  
这都只能登live.msn.hotmail但不能登自定义MSN,有什么好的办法吗?
5 楼 jiahang8195 2008-08-19  
试过这个 一直报911错误是何原因 不能登陆
4 楼 EvanLiu 2008-06-24  
有不用使正在线上的msn下线就获取好友列表的办法吗?
3 楼 pqcc 2008-05-26  
可以,不过觉得意义不是太大,所以没有去实现。 
2 楼 simon1006 2008-05-26  
能跟msn好友通信吗?
1 楼 风向逆转 2008-05-25  
原来是你,哈哈

相关推荐

    java源码包---java 源码 大量 实例

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后...

    JAVA上百实例源码以及开源项目源代码

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后...

    java源码包4

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译...

    JAVA上百实例源码以及开源项目

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后...

    java源码包3

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译...

    java源码包2

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后...

    基于android的即时通讯开题报告(2.0).doc

    Android是由 Linux+Java构成的开源软件,允许所有厂商 " "和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台 " "自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己...

Global site tag (gtag.js) - Google Analytics