`
KG21
  • 浏览: 105469 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用java导出Msn好友及分组信息

    博客分类:
  • java
阅读更多

      网上也有不少例子,但是有些朋友遇到所谓911错误导致无法登录,isLogin=false。我对原有的代码进行了一点修改加了个等待10秒,因为发现每次登入耗时都不等,同时附上.jar包,因为个人使用中出现jar包问题导致无法登入.  修改代码如下:

package com.msn;
import java.io.IOException;
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;
import rath.msnm.msg.MimeMessage;
/**
 * Created by IntelliJ IDEA.
 * User: Eric
 * Date: 2008-12-2
 * Time: 14:33:20
 * To change this template use File | Settings | File Templates.
 */
public class MsnFriendOut {
    /**
     * getGroups(String userName,String password) 查询所有的 msn 分组。
     * getBuddyList(String userName,String password) 查询所有好友.(其他查询在线好友也雷同).
     *
     * @param args
     */
    private static final Logger log = Logger.getLogger(MsnFriendOut.class);
    private MSNMessenger msn = null;

    public static void main(String[] args) {
        MsnFriendOut ms = new MsnFriendOut();
        String msnAddress = JOptionPane.showInputDialog("请输入你的MSN");
        String password = JOptionPane.showInputDialog("请输入你的密码");
		ms.login(msnAddress, password);

        List<String> buddyList = ms.getBuddyList(msnAddress, password);

        if (buddyList != null) {
            for (String name : buddyList) {
                System.out.println("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);
        try{
            msn.login();
        }catch(Exception e){
            log.error(e);
        }
    }

    /**
     * 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);
			login(userName, password);

        while(!msn.isLoggedIn()){
            login(userName, password);
            try {
                Thread.currentThread().sleep(10000);
            } catch (InterruptedException e) {
                
                e.printStackTrace();
            }
          System.out.println("isLogin:"+ msn.isLoggedIn());
        }
        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();
            return null;
        }else{
            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);
            }

            MimeMessage msg = new MimeMessage();
            msg.setMessage("测试");
            try {
                boolean sendOk = msn.sendMessage("*****@hotmail.com", msg);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return list;
        }
    }
}


 

 

分享到:
评论

相关推荐

    多层分组表头导出Excel与后台JAVA交互

    根据前台表样已定义好的高级表格,而当前表格的HeaderColumn部份为高级分组,即多层分组列,将我们前所见即所得,点击导出按钮后,直接根据数据的逻辑,自动生成了多层组表的表头部份数据样式。 文件夹中附有源代码...

    Java导出CSV文件

    java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。

    java导出文件文件名处理

    java导出文件文件名处理

    java导出Word修改后缀名

    java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl

    java导出SPSS格式文件

    JAVA语言开发,通过JAVA将数据文件按格式导出成SPSS文件,导出文件扩展名,SAV。

    java导出oracle数据(单表)

    java导出oracle数据(单表)

    java导出图片到excel

    java导出内容以及图片到execl中,由于客户的骚需求,不得不进行一些不情愿的开发。文档仅供思路参考。谢谢

    java导出orcale数据库dmp文件

    使用Java导出orcale数据库dmp文件完成备份,有需要的可以直接拿过去用,缺点就是导出速度比较慢

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

    java导出到excel的工具类

    从java导出到Excel功能,具备非常好的可用性和可扩展性,实用POI写的。附详细实用说明!

    java导出复杂Excel内容数据动态循环

    java导出复杂Excel内容数据动态循环

    JAVA 导出WORD

    完整的JAVA导出WORD源代码,解压即可运行

    Java导出Word文档的实现.docx

    使用第三方Java工具类库Hutool的Word工具类,参考网址为https://www.hutool.cn/docs/#/poi/Word生成-Word07Writer; 2. 利用Apache POI和FreeMarker模板引擎; 3. 第三方报表工具。 上面的几种方式虽然可以实现Word...

    java导出excel (CVS格式)

    java导出CVS,csv只是一种文件的形式。。。就是按照逗号(英文逗号)分隔的文件 它的做成跟普通的文件做成是一样一样的,只需要创建一个文件(*.csv),把字符串按照一定的格式(AAA,BBB\nCCC,DDD注意必须是英文的...

    java导出excel超过65536条记录出错

    java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错

    java导出例子

    java导出例子java导出例子java导出例子java导出例子java导出例子java导出例子

    java导出Excel 时候 相同行合并

    java导出Excel 时候 相同行合并(可合并多列); 已测试通过;

    java导出excel并生成折线图.java

    资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

    java word 导出功能

    java word导出java word导出java word导出java word导出java word导出

Global site tag (gtag.js) - Google Analytics