系统集成MSN提醒的问题
如果有需求:每当网上有人下了订单,有些人需要得到MSN提醒。这个能否实现?
google了一下,发现有MSN 的 java API应该是可以做到这一点的。 不过要做的好,可能还是需要花点时间的。这里对网上提供的一些方法做了可行性测试,抛砖引玉。给需要的人一个开头:
首先找到了这么一段程序:
连接:http://bbs.star-bbs.net/thread-31120-1-51.html
MSNDaemon.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | /* * Created on 2003-11-21 by Liudong */ import rath.msnm.MSNMessenger; import rath.msnm.SwitchboardSession; import rath.msnm.UserStatus; import rath.msnm.entity.MsnFriend; import rath.msnm.event.MsnAdapter; import rath.msnm.msg.MimeMessage; /** * MSN演示程序 * @author Liudong */ public class MSNDaemon extends Thread { private static MSNMessenger msn; public static void main(String[] args) { msn = new MSNMessenger("retailsolution@live.cn", "hello1"); msn.setInitialStatus(UserStatus.ONLINE); msn.addMsnListener(new MSNAdapter(msn)); msn.login(); System.out.println("Waiting for the response...."); //捕捉Ctrl+C的输入以便注销MSN的登录 Runtime.getRuntime().addShutdownHook(new MSNDaemon()); } /** * 用户中止程序执行 */ public void run() { msn.logout(); System.out.println("MSN Logout OK"); } } /** * MSN消息事件处理类 * @author Liudong */ class MSNAdapter extends MsnAdapter { MSNMessenger messenger; public MSNAdapter(MSNMessenger messenger) { this.messenger = messenger; } /** * 某人正在输入信息 */ public void progressTyping( SwitchboardSession ss, MsnFriend friend, String typingUser) { System.out.println(friend.getLoginName() + "正在输入信息..."); } /** * 收到消息的时候执行该方法 */ public void instantMessageReceived( SwitchboardSession ss, MsnFriend friend, MimeMessage mime) { System.out.print("接收到消息:" + friend.getFriendlyName() + "->"); System.out.println(mime.getMessage()); try { //发送相同的回复信息给发送者 messenger.sendMessage(friend.getLoginName(), mime); } catch (Exception e) { e.printStackTrace(); } } /** * 登录成功后执行该方法 */ public void loginComplete(MsnFriend own) { System.out.println(own.getLoginName() + " Login OK"); } /** * 登录失败后执行该方法 */ public void loginError(String header) { System.out.println("Login Failed: " + header); } /** * 好友离线时执行该方法 */ public void userOffline(String loginName) { System.out.println("USER " + loginName + " Logout."); } /** * 好友上线时执行该方法 */ public void userOnline(MsnFriend friend) { System.out.println("USER "+friend.getFriendlyName()+" Login."); } /** * 有人加我为好友时执行 */ public void whoAddedMe(MsnFriend friend) { System.out.println("USER " + friend.getLoginName() + " Addme."); try { messenger.addFriend(friend.getLoginName()); } catch (Exception e) { e.printStackTrace(); } } /* * 有人把我从好友列表中删除时执行 */ public void whoRemovedMe(MsnFriend friend) { System.out.println("USER "+friend.getLoginName()+" Remove me."); try { messenger.removeFriend(friend.getLoginName()); } catch (Exception e) { e.printStackTrace(); } } } |
如何运行这个程序?步骤如下:
1、下载 MSN API : http://sourceforge.net/project/showfiles.php?group_id=47932
2、如果还没有jdk ? 下载jdk ,比如 jdk1.5.0_16 (下载地址很多,google一下)
3、设置java运行编译环境:比如下文注意点中的 javaenv.env; 然后source javaenv.env
4、编辑:MSNDaemon.java ,把其中的msn帐号换成你的测试帐号
4、编译:javac MSNDaemon.java
5、运行:java MSNDaemon
运行效果如下:
想像一下
把MSN API 这个集成到我们的系统中去,就可以实现MSN提醒了!
注意点
1:if You are on a Unix system running as root, using the 1.4.2 GCJ version? The GJC version may not
have the com.sun.net.ssl.internal.ssl.Provider ,it will cause an error, you may download new version jdk from sun,
then will be ok;
2: 编译前先运行环境变量,比如你可以建立如下的env 文件:
[root@retailsolution d01]# more javaenv.env
JAVA_HOME=/d01/jdk1.5.0_16
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
CLASSPATH=.:$JAVA_HOME/jre/lib/:$JAVA_HOME/jre/lib/jsse.jar:$JAVA_HOME/lib:/d01/MSN_Java/msnm.jar
export JAVA_HOME J2EE_HOME PATH CLASSPATH
[root@retailsolution d01]#
3:我这边测试可以和其他MSN用户通讯,但在测试前,我是先用标准的MSN客户端,把MSN机器人的MSN帐号进行一次登陆,并加另外一个MSN帐号为好友。然后再回到这个程序进行测试
4:程序做的MSN机器人很容易断线,我这边测试情况是:MSN机器人登录并与好友聊天后1分钟之后就断线了,这个程序需要改进。
5:相关链接:
5.1 MSN机器人源程序连接:http://bbs.star-bbs.net/thread-31120-1-51.html
5.2 MSN java Api 下载链接:http://sourceforge.net/project/showfiles.php?group_id=47932
关于作者:
昵称:商云方 档案信息:顾问, HAND张江技术中心 联系方式:你可以通过yunfang.shang@hand-china.com联系作者 点击查看商云方发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/2197 |
对本文的评价: