基于 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
分享到:
相关推荐
JAVA获取FTP文件列表,功能齐全。包括:链接到服务器,上传文件到FTP服务器,从FTP服务器上下载文件并返回下载文件长度,返回FTP目录下的文件列表,删除FTP上的文件及目录,关闭链接。
Java获取全国省市列表2016版
使用java获取所在局域网的所有在用ip,可以检测目前有哪些ip在使用
java模拟登陆获取好友列表经过本人测试(源码)本来不想要分的。没办法啊,这个csdn你不要分,就没分下载啊。哥也是被逼的。兄弟们理解万岁 少标点吧弄个7分得了。不过东西没得说。却是可以用自己测试了。绝对不忽悠
Java获取全国所有省市列表.rar LocalUtil lu = LocalUtil.getInstence(); String[] arr = lu.getCitys("中国","广东");
用java实现msn,取得用户列表用java实现msn,取得用户列表用java实现msn,取得用户列表用java实现msn,取得用户列表用java实现msn,取得用户列表用java实现msn,取得用户列表
java 获取标准北京时间 标准北京时间 北京时间 网络时间 internet时间
2016年Java版获取省市列表2016年Java版获取省市列表2016年Java版获取省市列表2016年Java版获取省市列表2016年Java版获取省市列表2016年Java版获取省市列表
java通过sigar获取进程的相关信息 ,包含各个进程的PID、名称、CPU使用率、所占内存大小等
java获取新浪股票信息
java获取民族 提供了根据名称代码获得民族对象 mzu.xml存储了56个民族的信息
获取客户端ip地址( 这个必须从客户端传到后台): jsp页面下,很简单,request....因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换java 获取客户端ip mac地址
此java类获取的是公网的IP地址,如想获取本机IP但不是公网IP查看我其他资源。
java 获取指定日期(带毫秒)的 13位时间戳 ,获取当前时间的时间戳 一句话就可以System.currentTimeMillis();
很多同志在用java做仿QQ聊天程序或者是做聊天程序时,都不自觉得想到了QQ好友列表,可是java中的JTree没有那个功能,又要显示头像又要显示昵称,这个资源不仅可以实现以上功能,而且可以显示个性签名和空间动态等,...
java 获取计算机名与IP地址 java 获取计算机名与IP地址 java 获取计算机名与IP地址
这是一个获取json网页数据的java实例
java ipmi,vxipmi 通过java获取服务器信息,温度、风扇、内存等
Java获取文件夹大小、文件大小,文件个数.doc
java获取网络音乐文件时长,自己整理的三种方法