微博远程监控程序(原理和源码讲解)
谷歌托管地址:http://code.google.com/p/weibo-remotemonitoring/downloads/list
昨天看了Java的一个媒体框架——JMF(Java Media Framework),在网上找到了一个例子,突发奇想地做了一个简易的微博远程监控程序。鉴于流媒体网络传输的技术难度,以及我也不知道到底是做成客户端还是网页形式,果断还是选择了简单的监控视频截图加微博发布的方式,做成了这个微博远程监控程序。
功能介绍:当你在任意微博上@指定帐号并加上指令时,运行此程序(运行时需微博帐号登录授权,即前面说的指定帐号)的远程电脑主机可以接收指令并自动打开关闭监控摄像头、自动截取视频截图(保存图片到本地并发布微博)、定时执行截图任务(不发布到微博只保存图片在本地),从指定帐号的微博上可查看到上传的监控图像。
微博远程监控程序,其实是由两部分组成。
第一部分为微博指令识别,基于新浪微博Java SDK,程序定时自动获取@指定帐号的最新一条微博,识别其中包含的指令,并做出响应。例如“@某某帐号 open”的微博,程序判断到有包含“open”字符串的指令,将自动打开本地摄像头,开始进行监控。现已定义的指令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
某账号:即在此程序上登录授权的帐号,建议使用测试帐号(会自动发布监控反馈的微博信息)。 指令命名规则可以随意定义修改。 @某账号 open //打开摄像头指令,微博内容必须包含"open"关键字 @某账号 photo //监控截图并发布到微博指令,微博内容必须包含 "photo"关键字 @某账号 photo<int> //定时监控截图任务指令,不会发布到微博,图片保 存在本地,微博内容必须包含"photo<int>"关键字, int替换成大于0的整数,即每隔多少秒截图一次,当 int为小于或等于0的整数时,结束定时监控截图任务 @某账号 close //关闭摄像头指令,微博内容必须包含"close"关键字 @某账号 all close //监控程序全部退出指令,微博内容必须同时包含"all" 和"close"关键字 程序中定义了信任微博帐号的ID列表,避免接收不受信任帐号恶意的@,程序只接收来自于 信任ID的@指令。在String[] access_userID中添加信任微博帐号ID即可。 |
第二部分为监控系统,基于JMF,系统接受到指令后进行响应的操作:打开关闭监控摄像头、自动截取视频截图(保存图片到本地并发布微博)、定时执行截图任务(不发布到微博只保存图片在本地,暂时保存路径为“D:\photo\”,可自行修改),从指定帐号的微博上可查看到上传的监控图像。
微博远程监控程序使用步骤(此处需有一定的微博应用开发经验,或者可到新浪微博开放平台上阅读相关文档):
1、首先需要安装JMF框架(已安装的请跳过),到此处下载对应系统下的安装包,程序在XP下测试正常,linux下未做测试。
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html
2、用Eclipse或其他工具导入工程,修改src文件夹下的config.properties,填写以下两个自己应用的相关信息
1 2 |
client_ID = 填写自己在新浪微博开放平台上某个应用的App Key client_SERCRET = 填写自己在新浪微博开放平台上某个应用的App Secret |
3、在Test包下的Sina类中添加信任微博帐号ID
3、运行Test包下的Sina.java,授权后将浏览器地址栏code的值填写到控制台后程序即可开始运行。
4、用信任列表中的帐号@某帐号并带上指令,即可随时随地用微博进行远程监控和获取时时监控的截图信息。
测试期间如果出现问题请在下面反馈。谢谢。