转发精灵项目历程


独立观察员20130811


727号左右,符同学在QQ上问我做不做项目,我还以为是Android开发的,也不确定,就问是什么项目,然后他说是他以前同学叫他做一个关于发腾讯微博的软件,他没空就要找别人来做,还说了“有银子”——1k


   他看我有意,就发来要求视频给我看。视频是用屏幕录像专家录的exe格式的,大概快进过了,让人目不暇接,不过勉强可以看出是要将Q群里的宝贝宣传图文内容发布到腾讯微博和空间日志里;我还得知老板叫鲁**,开淘宝店的。


   符说这个应该不难做吧,腾讯微博有API,就跟集训时用的百度定位类似,等等。我一听倒是深以为然,同时对这么一些银子还是蛮心动的,唉,穷人家的孩子伤不起。于是便说,那你叫他联系我。然后,交换了一些信息。


   很快,鲁就打电话来,号码倒不是符给的那个。他说,你是杭电的我是杭职的,然后说了一下思路什么的。他问我大概要多久能做好,我其实心里很没底,就说一个月左右吧,他嫌长了;然后他说那先做微博这个要多久,我说应该十几天可以吧,他又问什么时候可以开始,我说现在都没其他事。谈话中,确实听他提了一句这个工钱是一千。


   好像是第二天,符在QQ上又说还有一个人答复他了,正是胡**同学。我加了胡的QQ,问他也加入了?他说,是的。我是打算用Java写,可胡没学过,他想用C++,我又不会;然后就觉得这样不靠谱,肯定最终只能一个人做,而且是我的可能性比较大,毕竟他当时还没联系过鲁。


   头几天鲁倒是时时问问,然后我29号的火车,31号到,那两天也没怎么做。


   开始时,因为实训的原因,有得参考,就把主界面弄了下,其它没什么思路,想着要是胡有思路就靠他了,或者全让给他也未尝不可。可是他恰恰也没有思路,倒是蛮有信心的,说做吧。由于想用的语言不同,加上胡又总是模棱两可,我真搞不懂和他到底是要不要和我一起,我问得深了,他说了一句各做各的,所以我就决定不去管它了。我回到家后的每一天,他在QQ上问我Java的问题,他要开始学Java了,说其实Java也挺简单的。


   本来想着数据可以一段一段复制出来,然后一条一条发送。鲁说不是,要真那样那还不如在QQ窗口选中右键发到微博,其实我倒不知道有这功能,顿时虚了,会了一句,那我看看。


   腾讯微博API的例子看不懂,主要是运行了感觉没有效果。关于授权,网上多是Oauth的,较少Oauth 2.a 的,找了好多例子终于完成授权功能,然后发微博又搞不懂了,最后发现还是官方的例子可行,不过好像也有奇怪的地方,总之最后磕磕绊绊地完成。


   其实这还是后面的事,开始时我还是在弄界面,弄了很久。我是想复制内容后,在界面上可以原封不动地粘贴上去。关键是图片难处理;还有要与剪贴板打交道,感觉剪贴板里一片黑暗。光文字或图片倒是勉强可以处理了,但是一到图文混合时,贴出来的文字与图片都合成了一张图片,要命的是,图片倒是显现出来了,可她周边全是黑暗啊,字要是黑的就完全隐没了,永无天日!


   我就想,现在当务之急是把黑暗扫除,为此我还在知乎和百度知道提问相关问题(包括剪贴板操作),可结果不尽如人意;我还向两个人提问了,一个是沈静老师(通过邮件),一个是陈天翔(达内老师,通过新浪微博);发给沈老师的邮件算是石沉大海了,这我早已料到,毕竟以前上她的Java课时就是这样;陈老师倒是在微博上回了一句类似“不知道什么意思”的,然后就没有然后了。


   每天都在百度上大浪淘沙般地搜索解决问题的方法,总是以“Java”开头,我想,下个月的编程语言排行,Java应该又要上升好几个百分点了吧,呵呵,想太多。皇天不负苦心人,终于让我找到了一个去除图片背景的方法,原方法是去除图片的白色背景,我修改了一下,可以去除黑色背景了,我简直如获至宝一般。现在图片周围的黑色一扫而光,不过,还是占据着位置。


   然后我想,现在可以获得剪贴板的文字和图片了,不过图片是扩大版的,那么如果图片一多,那岂不是连成一片,图片怎么分割呢?想了一段时间,发现是时候放弃这种方法了。


   于是我想网上有一些富文本编辑器的例子,能不能拿来嵌入呢?或是借用里面的方法?甚至我还想换用php语言(虽然我更不会,不过正好学习一下),这样在授权阶段,可以用js直接获得accessToken,而不用用户手动复制粘贴。最后我发现,这些富文本编辑器虽然功能强大,但在图片的处理上还是不适合这个项目。


   再然后我又找到用Jacob操纵word对象的方法、用poi读取word文本内容的方法、用Jacobword转换为html的方法(为了把图片分离出来),这样,我觉得一切很快就能完成了,心潮澎湃!


   接下来就是数据处理了,我发现图片自动按“image001”这样命名下去,而且我找到一个方法读取时也是按名字顺序的,这就好办了(虽然有些投机取巧)。至于文字和链接,倒是折腾了一番。


   最后的功能是:可批量处理,其中每条信息应包含一条链接、文字和一张图片,且链接以“http://”开头,位置在文字前面,图片的位置不限;然后逐条自动发送到授权帐号的腾讯微博中。


   88日,给鲁看了效果,答应他一两天内打包发过去。

   89日早上他就通过支付宝将一千元打了过来,叫我快点打包发给他。9日晚上,经过下午的打包尝试,最后还是不得不以压缩包的方式打包发给他了。他用了下,虽然有些小问题,但大体上能满足他的要求。(这样项目大概历时12~15天)


   810日,我将发送过程放到了线程里,增加了设置选项,打包成了自解压安装包格式(有感而发写了一篇博客:http://4462080.blog.51cto.com/4452080/1269688)又发给他了一个。


   这样,这个项目大体上就这样了,虽然后期还要维护一段时间(希望他不要提出什么无理的要求)。他倒是想让我加入发空间日志或新浪微博的功能,日志的我应该不会去做,新浪微博的倒是可以考虑一下。


   这个项目对我意义重大,她是我第一个独立完成的项目,是第一个让我赚得真金白银的东西。即使后期客户没有要求,我也会时不时地来看一下,努力完善的。


   最后,强烈感谢符同学和鲁同学!