论文部分内容阅读
新浪、网易、腾讯、人民网,现在是个像样的网站都要加上微博,它算是目前互联网最热门的服务了。围绕各种微博开发的第三方客户端或插件,也随之大热起来。君不见针对Twitter的应用,网上就能找出成百上千个。微博客户端或插件虽然大多是免费,但是它潜在的广告收入,还是吸引了许多开发者,今天我们就来聊聊它吧。
程序员往往能触类旁通、举一反三。今天的嘉宾朱雄杰想来大家并不陌生,他也是前几期中WPS、IE插件的作者,今天请他来聊聊较流行的微博开发。
CFan:什么是微博?微博与其他网络服务相比优势何在?
朱雄杰:一般将每篇限制在140字以内的博客称之为微博客(MicroBlog),其实这只是个形式,微博真正的魅力在于它的实时性和交互性,朋友之间可以快速分享各种信息,包括自己的生活状态。至于微博的优势,在艾瑞对六类网络营销方式特征对比的结果中,可以看出,微博在传播性、互动性和精准性方面远胜于其他网络服务(见下表)。
CFan:微博插件有何盈利前景?
朱雄杰:微博平台越来越多,人们也就懒得再通过网站去更新,而更多的人选择通过微博客户端(插件)来完成微博管理的任务。
微博本身是个轻量级的信息传播平台,但是它的插件却可以千变万化,因为它可以在不同的平台上发布微博,如手机、电脑等。在国外,有专门的付费微博插件来进行信息发表。如TwitterHawk允许任何企业向所有涉及特定关键词的Twitter用户自动发送信息并收取一定的费用;Twittercounter是一个分析工具插件,允许用户追踪多项数据并付费进行展示等。
日益普及的智能手机催生了一批通过手机网络来更新的Twitter应用。Tweetie就是其中之一。该程序专为苹果iPhone设计,用户可以通过苹果商店购买该软件,售价为2.99美元。程序开发者布里切特获得70%的提成,剩余30%则归苹果所有。而同样的,我们国内的移动OPhone平台,联通的沃平台,都能以这种方式来实现微博插件的盈利。插件方便了人们的沟通,可以为微博的商家带来更多的流量,也就是带来了更多的广告盈利。
【任务实战】
自制网页版微博客户端
CFan:微博客户端与插件有什么异同?这类程序开发市场如何?
朱雄杰:个人认为这两者的界限比较模糊,它们主要都是在微博开放的API接口的基础上进行二次开发。在国内,商业网站自然不能放过这么好的商机,比如有某专业股票资讯网站,他们还专门举办了一个微博插件比赛。我也参加了该大赛,借这个实例聊一些开发经验吧。
首先要搞清楚微博网站能提供的API是什么,从哪里能取得,需要什么条件?基本上,各大微博能开放的API,都是以Twitter的API接口为原型并扩展的,所以大同小异,只要大家了解了一家的,剩下的就是细节方面的事情了。本例中微博的API可参考http://t.cnfol.com/op/api,下文所有操作皆基于此API进行(本文仅为技术演示)。
开发前需要先注册一个微博,因为调用API时,需要提供合法的用户名和密码进行验证的。
微博的API主要分类有:消息相关的、搜索相关的、用户相关的、私信相关的、收藏相关的、好友关系、好友和关注者、账号相关的方法。所有这些方法,返回的数据都有两种格式:XML格式和JSON格式。可以按各人的喜好来选择不同的数据格式返回。
下面的例子,要取得我们注册账号下的“随便看看”的内容。我们以HTML+JavaScript的方式来查询数据并显示出来,并使用AJAX的方式来实现无刷取数据。
1.账号的验证
账号验证的方法为:
http://api.t.cnfol.com/account/verify_credentials.[json|xml]
因为是使用XMLHTTP来验证的,所以需要在xmlhttp控件中的open函数中传入用户名和密码来验证。如果返回的id不为0,则验证账户正确,否则验证不通过(见图2)。
2.获取“随便看看”的信息
获取“随便看看”信息的主要方法:
http://api.t.cnfol.com/statuses/public_timeline.[json|xml|rss]
参数:
count(可选):消息数,范围1-20,默认为20。
示例:
http://api.t.cnfol.com/statuses/public_timeline.rss?count=10
format(可选):消息内容格式,当format=html时,返回消息的内容字段是进行@识别,网址识别等后台处理之后的html代码。
详细代码可从http://work.newhua.com/cfan/201011/tswc-plug.zip获取。下载解压后,在浏览器中打开其中的test.html,点击“测试取信息”,即可看到返回的数据了。数据格式是以JSON格式返回的,可用“var _MsgJSON =eval("(" + data + ")");”把它转成JSON的对象,然后根椐需要取相应的字段值。具体的数据格式可以参考API中的说明。如:text字段是微博的内容,created_at是发表的时间。注意:这个时间是格林威治时间,需要在该时间上加上8小时才是我们的北京时间;user字段是存放发表者的相关信息,可以从中取得发表者的基本信息,注意里面有一个protected字段,表示该用户的信息是否受保护。如果为true,则我们不应该显示该用户的信息给浏览者看,以保证用户信息不被查看。其他方法的操作也基本一致,只是用不同的API地址即可。
3.从客户端直接发布微博
下面我们来看看怎么发表一篇微博。发布消息的API路径:
http://api.t.cnfol.com/statuses/update.[json|xml]
方法:POST
参数:
status(必需):消息内容,使用POST方式提交。
in_reply_to_status_id(可选):如果是回复某一条消息,则在这里指明被回复消息的ID。
source(可选):消息来源,使用POST方式提交,如果与微博的数据库匹配,网页上将以此格式显示。
status(消息内容):通过source对应的API应用名称(参考上面的API应用认证相关说明)。
location(可选):最多30个字符,表示发布消息的地点名称或一个半角逗号分隔的经纬度坐标。如:“北京市海淀区”或者39.9594049,116.298419。
备注:API会自动加上被回复者的昵称,如:“@昵称”
继续在上面的test.html中添加用于发布微博的代码,然后再在body中加入HTML格式化信息(详见上文提供的文件包)。这样,在输入框内输入想发表的微博内容,点击“发送”即可发布了。如果回复某条微博,在调用上面的函数时指定in_reply_to_status_id这个参数即可。
插件开发完成即可发表。发表方式有多种,我的做法是:应用程序内嵌IE内核,这样只用一个EXE加上HTML文件即可,不需安装,更新也容易(见图3)。如使用C++Builder,则可以先建立一个普通的应用程序,然后在界面中放置一个TCppWebBrowser控件即可。编写相应的代码(见上文文件包),使程序在启动时自动装载相应的HTML页面即可。对于VC开发者,则可以使用CHtmlView来实现。
程序员往往能触类旁通、举一反三。今天的嘉宾朱雄杰想来大家并不陌生,他也是前几期中WPS、IE插件的作者,今天请他来聊聊较流行的微博开发。
CFan:什么是微博?微博与其他网络服务相比优势何在?
朱雄杰:一般将每篇限制在140字以内的博客称之为微博客(MicroBlog),其实这只是个形式,微博真正的魅力在于它的实时性和交互性,朋友之间可以快速分享各种信息,包括自己的生活状态。至于微博的优势,在艾瑞对六类网络营销方式特征对比的结果中,可以看出,微博在传播性、互动性和精准性方面远胜于其他网络服务(见下表)。
CFan:微博插件有何盈利前景?
朱雄杰:微博平台越来越多,人们也就懒得再通过网站去更新,而更多的人选择通过微博客户端(插件)来完成微博管理的任务。
微博本身是个轻量级的信息传播平台,但是它的插件却可以千变万化,因为它可以在不同的平台上发布微博,如手机、电脑等。在国外,有专门的付费微博插件来进行信息发表。如TwitterHawk允许任何企业向所有涉及特定关键词的Twitter用户自动发送信息并收取一定的费用;Twittercounter是一个分析工具插件,允许用户追踪多项数据并付费进行展示等。
日益普及的智能手机催生了一批通过手机网络来更新的Twitter应用。Tweetie就是其中之一。该程序专为苹果iPhone设计,用户可以通过苹果商店购买该软件,售价为2.99美元。程序开发者布里切特获得70%的提成,剩余30%则归苹果所有。而同样的,我们国内的移动OPhone平台,联通的沃平台,都能以这种方式来实现微博插件的盈利。插件方便了人们的沟通,可以为微博的商家带来更多的流量,也就是带来了更多的广告盈利。
【任务实战】
自制网页版微博客户端
CFan:微博客户端与插件有什么异同?这类程序开发市场如何?
朱雄杰:个人认为这两者的界限比较模糊,它们主要都是在微博开放的API接口的基础上进行二次开发。在国内,商业网站自然不能放过这么好的商机,比如有某专业股票资讯网站,他们还专门举办了一个微博插件比赛。我也参加了该大赛,借这个实例聊一些开发经验吧。
首先要搞清楚微博网站能提供的API是什么,从哪里能取得,需要什么条件?基本上,各大微博能开放的API,都是以Twitter的API接口为原型并扩展的,所以大同小异,只要大家了解了一家的,剩下的就是细节方面的事情了。本例中微博的API可参考http://t.cnfol.com/op/api,下文所有操作皆基于此API进行(本文仅为技术演示)。
开发前需要先注册一个微博,因为调用API时,需要提供合法的用户名和密码进行验证的。
微博的API主要分类有:消息相关的、搜索相关的、用户相关的、私信相关的、收藏相关的、好友关系、好友和关注者、账号相关的方法。所有这些方法,返回的数据都有两种格式:XML格式和JSON格式。可以按各人的喜好来选择不同的数据格式返回。
下面的例子,要取得我们注册账号下的“随便看看”的内容。我们以HTML+JavaScript的方式来查询数据并显示出来,并使用AJAX的方式来实现无刷取数据。
1.账号的验证
账号验证的方法为:
http://api.t.cnfol.com/account/verify_credentials.[json|xml]
因为是使用XMLHTTP来验证的,所以需要在xmlhttp控件中的open函数中传入用户名和密码来验证。如果返回的id不为0,则验证账户正确,否则验证不通过(见图2)。
2.获取“随便看看”的信息
获取“随便看看”信息的主要方法:
http://api.t.cnfol.com/statuses/public_timeline.[json|xml|rss]
参数:
count(可选):消息数,范围1-20,默认为20。
示例:
http://api.t.cnfol.com/statuses/public_timeline.rss?count=10
format(可选):消息内容格式,当format=html时,返回消息的内容字段是进行@识别,网址识别等后台处理之后的html代码。
详细代码可从http://work.newhua.com/cfan/201011/tswc-plug.zip获取。下载解压后,在浏览器中打开其中的test.html,点击“测试取信息”,即可看到返回的数据了。数据格式是以JSON格式返回的,可用“var _MsgJSON =eval("(" + data + ")");”把它转成JSON的对象,然后根椐需要取相应的字段值。具体的数据格式可以参考API中的说明。如:text字段是微博的内容,created_at是发表的时间。注意:这个时间是格林威治时间,需要在该时间上加上8小时才是我们的北京时间;user字段是存放发表者的相关信息,可以从中取得发表者的基本信息,注意里面有一个protected字段,表示该用户的信息是否受保护。如果为true,则我们不应该显示该用户的信息给浏览者看,以保证用户信息不被查看。其他方法的操作也基本一致,只是用不同的API地址即可。
3.从客户端直接发布微博
下面我们来看看怎么发表一篇微博。发布消息的API路径:
http://api.t.cnfol.com/statuses/update.[json|xml]
方法:POST
参数:
status(必需):消息内容,使用POST方式提交。
in_reply_to_status_id(可选):如果是回复某一条消息,则在这里指明被回复消息的ID。
source(可选):消息来源,使用POST方式提交,如果与微博的数据库匹配,网页上将以此格式显示。
status(消息内容):通过source对应的API应用名称(参考上面的API应用认证相关说明)。
location(可选):最多30个字符,表示发布消息的地点名称或一个半角逗号分隔的经纬度坐标。如:“北京市海淀区”或者39.9594049,116.298419。
备注:API会自动加上被回复者的昵称,如:“@昵称”
继续在上面的test.html中添加用于发布微博的代码,然后再在body中加入HTML格式化信息(详见上文提供的文件包)。这样,在输入框内输入想发表的微博内容,点击“发送”即可发布了。如果回复某条微博,在调用上面的函数时指定in_reply_to_status_id这个参数即可。
插件开发完成即可发表。发表方式有多种,我的做法是:应用程序内嵌IE内核,这样只用一个EXE加上HTML文件即可,不需安装,更新也容易(见图3)。如使用C++Builder,则可以先建立一个普通的应用程序,然后在界面中放置一个TCppWebBrowser控件即可。编写相应的代码(见上文文件包),使程序在启动时自动装载相应的HTML页面即可。对于VC开发者,则可以使用CHtmlView来实现。