contact-list

    contact-list类库依赖包之gdata

    25 Oct 2009

    gdata是google提供的获取其数据的api,analytics, calender, contacts, webmastertools, youtube等等。

    对于contact-list从1.7.0开始,放弃原来通过模拟用户登录并爬取网页数据的做法,改用gdata api,使得获取google联系人列表变得简单了许多,同时使用api也保证联系人的获取不会因为网页的变动而失败。

    contact-list使用gdata有一点小问题,那就是gdata没有maven repository,我不得不手动下载gdata的jar包,并手动安装到本地的maven类库中。下面是安装这些jar包的ruby脚本(shell脚本不熟)

    [
      ['analytics', 2.0],
      ['appsforyourdomain', 1.0],
      ['base', 1.0],
      ['blogger', 2.0],
      ['books', 1.0],
      ['calendar', 2.0],
      ['client', 1.0],
      ['codesearch', 2.0],
      ['con...
    Read More

    Tags 


    Move google svn to github git

    19 Sep 2009

    之前contactlist这个项目一直放在google code上面,今天把contactlist移植到了github上。记录下移植的过程:

    首先是用git-svn把googlecode上的项目checkout出来

    git svn clone https://contact-list.googlecode.com/svn -T trunk -b branches -t tags

    之后就是push到github了

    git remote add origin git@github.com:flyerhzm/contactlist.git
    git push origin master

    相当简单,这下我的项目就都搬到github上面去了

    Read More

    Tags 


    contact-list类库依赖包之json

    19 Sep 2009

    json类库为java提供了方便地在json和string之间的转换和对json数据的操作。

    对于contact-list类库来说,有些联系人信息是通过json来传输的,所以利用json类库来处理数据。

    1. 从String转换为JSON对象

    protected JSONObject parseJSON(String content, String startTag) throws JSONException {
        String json = content.substring(content.indexOf(startTag) + startTag.length());
        JSONTokener jsonTokener = new JSONTokener(json);
        Object o = jsonTokener.nextValue();
        return (JSONObject) o;
    }
    
    protected JSONObject parseJSON(String content, String startTag, String endTag) throws...
    Read More

    Tags 


    contact-list类库依赖包之msnmlib

    26 Aug 2009

    msnmlib是韩国人写的一个msn的java客户端,提供了完整的api,很好用的,唯一的缺陷就是javadoc使用韩文写的,看不懂。

    对于contact-list类库来说,完全是基于msnmlib来提供对msn联系人列表的导入。

    1. 登录msn
    private void login() {
        msn.setInitialStatus(UserStatus.OFFLINE);
        msn.login(username, password);
    }

    设置初始登录状态为OFFLINE,可以防止被误以为是用户登录,影响用户之间的联系。

    1. 获取联系人列表
    public List<Contact> getContacts() throws ContactsException {
        try {
            login();
            List<Contact> contacts = new ArrayList<Contact>();
            BuddyList list = msn.getBuddyGroup().getAllowList();
            ...
    Read More

    Tags 


    contact-list类库依赖包之commons-httpclient

    23 Aug 2009

    commons-httpclient是apache下的一个开源项目,提供了一个纯java实现的http客户端,使用它可以很方便发送HTTP请求,接受HTTP应答,自动管理Cookie等等。

    对于contact-list类库来说,需要使用的功能有,自动管理Cookie,设置HTTP头,发送HTTP请求,接受HTTP应答,转发HTTP重定向,还有输出HTTP请求/应答日志,下面对这些功能的实现进行解释:

    1. 自动管理Cookie
    public EmailImporter(String email, String password, String encoding) {
        ......
        client = new HttpClient();
        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
        client.getParams().setParameter("http.protocol.single-cookie-header", true);
    }

    其中将HttpClient的Cookie策略设置为CookiePolicy.BROWSER_COMPATIBILITY,即表示java client将按照浏览器的方式来自动处理Cookie。当然你也可以在运行过程中手动调整cooki...

    Read More

    Tags 


    导入联系人列表的类库

    14 May 2009

    上个月在google code上发布了一个导入联系人列表的类库,http://code.google.com/p/contact-list,获取用户的msn和邮箱联系人列表,支持的邮箱包括hotmail, gmail, yahoo, sohu, sina, 163, 126, tom和yeah。算是之前一段时间的小成果吧。

    不过由于这个类库的原理是使用抓取网页来分析联系人列表的,所以会因为邮箱网页的改版而无法正确获取联系人列表。 在写代码的时候就碰到过Hotmail改版的情况,所以这个类库是需要不断改版的。还好在发布之前特意写好了测试脚本,很容易找到哪个邮箱出问题了。

    今天收到一个用户的email,说他的新浪和搜狐好像无法导入,我回来test了一下,发现新浪和搜狐没问题,倒是yahoo出问题了。于是给他回信,让他把log4j的level设置成debug,然后把调试信息发给我。现在有了用户的反馈,有点小压力,要好好维护好这个类库。

    Read More

    Tags