java获取msn好友列表

基于 JMSN 写了一个 MsnHelper 。借助getBuddyList(String userName,String password) 方法即可轻松查询所有好友列表。
JMSN 下载地址:[url]http://sourceforge.net/project/showfiles.php?group_id=47932[/url]。使用其中的 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值