新浪微博开放平台解析

新浪微博开放平台解析什么是开放平台?根据维基百科的定义:“开放平台指在软件业和网络中,软件系统通过公开其应用程序编程接口(API )或函数(function )来使外部的程序可以增加该软件系统的功能或

新浪微博开放平台解析

什么是开放平台?

根据维基百科的定义:“开放平台指在软件业和网络中,软件系统通过公开其应用程序编程接口(API )或函数(function )来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。”

非技术背景的读者可能心生疑惑,这个看似有些晦涩的以Open API 为基础的开放平台缘何突然成为各财经媒体封面报道的明星,互联网淘金者眼中的宠儿?

其实从开放平台更加广义的内涵看,它对于我们并不陌生,在我们的日常生活里随处可见。比如超市、菜场,它们提供场地、物业以供商贩们入驻销售;甚至我们电脑里可以支持各种应用软件的Windows ,其实也是一种开放平台„„所谓的开放平台,本质是配备流通渠道的资源汇集地。而一进入互联网世界里,物理实体形式的资源转变成了“二进制数据”,诸如菜农的一系列具体经营行为则相应地被抽象成了Open API函数。

就这样,商机诞生了,比如通过软件应用商城API ,开发者可以写个入口程序,既可以把自己的商品导入商城销售,也可以将商城的销售商品导入自己的应用,帮助商品寻找更多的新买家。据统计,Facebook 每天有50亿次API 应用请求,占据它全部流量的75------从这里我们不难简单一窥整个Open API体系蕴藏的市场前景。

同时,和2010年同样风光一时的关键字:“团购”、“地理位置应用(LBS )”所截然不同,开放平台不是单纯的商业模式,而是一种资源的调配方式,势必会影响互联网的产业格局。而随着各开放平台的争相开放,意味着整个业界已经达成“共识”:现在中国的互联网竞争已经进入了一个全新的高度------整合资源为核心的产业链竞争。

新浪微博开放平台

新浪微博开放平台,为广大开发者提供开放接口,可构建丰富多样的应用。开放平台为用户提供辅助开发的多种典型应用,让新浪微博通过第三方网站、WAP 、移动客户端和站内应用等接入形式遍植整个互联网,并提供XWeibo 系统协助第三方快速搭建自己的微博系统,并与新浪微博平台互通,充分利用新浪用户与信息资源。通过它,我们可以取得数千万用户的个人信息(需要用户授权)以及用户和用户自己的关系。更重要的是,我们可以通过它,以用户身份发微博(同样需授权),从而影响用户的粉丝,再通过他们的转发将信息进一步传递, 构造一个类似核裂变的信息传递链路,在短时间内覆盖大量用户,从而节省下大量的推广成本。利用新浪微博开放平台提供的数据分享和传播服务,加上开发者的智慧,将创造无穷的功能与乐趣。

新浪微博开放平台接入方式

用户可以通过网站,移动应用,站内应用三种形式接入新浪微博开放平台,组建自己的社区。

1. 网站接入

微连接(Weibo Connect )是新浪微博针对第三方网站提供的社会化网络接入方案。微

,

连接基于新浪微博亿级用户基数和社交网络传播特性,为第三方网站提供用户身份系统及社交关系导入。让您的网站支持用新浪微博账号登录,让用户方便的分享网站的内容、在网站上关注您的官方微博。 使用微连接,可以快速为网站增加用户、流量和官方微博粉丝。

关于网站接入的详细介绍和微连接的接入流程请查看新浪开放平台文档:

2. 移动应用接入

新浪微博平台上目前已有超过20万款应用,其中活跃应用约2万款,这一数据在持续迅猛增长中,吸引着更多开发者通过平台达成与微博的合作。新浪微博移动应用开放平台为第三方提供了简便的合作模式,满足了多元化移动终端用户随时随地分享信息的需求。且大大推动Weico 、米聊、陌陌等第三方应用在短期内占领了用户市场。 移动应用开放平台将为第三方提供更丰富易用的微博接口及组件,以实现第三方移动站点、客户端、机顶盒、车载设备等多类型终端的社会化接入。

详情请查看新浪微博开放平台文档:

3. 站内应用

为更好的规范第三方应用的开发质量,提高用户的应用使用体验,新浪微博推出站内应用框架服务。通过该服务,可以将您的Web 类应用接入新浪微博,让用户在新浪微博网站内使用应用,即站内应用。你的应用将以http://apps.weibo.com/个性域名 的地址被用户访问到,并可深度整合新浪微博众多推广资源及传播渠道帮助你构建高度社交特性的应用。

详情请查看新浪微博开放平台文档:

平台已经提供的服务

1. 微博登录:微博登录包括身份认证、用户关系以及内容传播。允许用户使用微博帐号登

录访问第三方网站,分享内容,同步信息。通过覆盖率超高的新浪账号,有效降低第三方网站用户参与门槛。它有如下特点:

● 直接用微博账号登录你的网站 获得高质量微博活跃用户 更便捷的分享到微博,提高网站信息传播力

2. 微博组件:

● 微博分享:授权使用新浪微博账号,将在第三方网站中的动态消息,通过微博消息

的形式,自动发表到新浪微博平台中,让更多微博用户通过消息中的链接/来源,回到第三方网站。

● 第三方在新浪微博中运营微博直播/一键关注/评论箱/集体微博组件,可通过开放

API, 查询新浪微博平台中针对某个话题/名单/用户的微博,进行集中展现,达到获取微博平台消息作为网站内容,并吸引用户参与的目的。

● 微博签名档:可以放置在你的博客、论坛,或是其它可以引用网上图片的位置,签

名档会随你的微博同步更新。

● 微博发布器:在您的博客、网站或其他支持HTML 的位置嵌入一段微博发布器对应

的代码,不仅能让用户直接发微博,您还可以在发布器中预制文案及图片。

,

● 关注按钮:关注按钮可以部署在任何支持iframe 的网页。用户在这些网页点击关

注按钮,就可以成为你的微博粉丝。让关注你的人来关注你的微博;让你在微博发布的信息有效覆盖、充分传播。

● 微博秀:可以放置在你的博客、网站,或是其它支持html 代码的位置,展示你的

微博和粉丝,让更多人关注你。

3. JS-SDK 新浪微博Weibo-JS 是一个基于Javascript 的SDK ,只需要在您的网站引用一个JS

文件,就可以请求微博API ,快速嵌入微博组件和查看统计数据。

4. XWeibbo ,快速搭建属于自己的微博服务。

新浪微博开放API 介绍

新浪微博开放API 已向开发者提供以下功能接口,开发者可利用这些API 开发自己的微博应用:

● 微博接口 评论接口 用户接口 关系接口 账号接口 收藏接口 话题接口 标签接口 注册接口 搜索接口 推荐接口 提醒接口 短链接口 通知接口 公共服务接口 位置服务接口 地理信息接口 社交电视接口

使用新浪微博为第三方开发者提供的以上API ,可以获得如下好处:

● 强大的平台支持 新浪微博拥有3亿注册用户,这些用户都可能成为第三方应用的● 用户群体。 获得来自新浪微博的优质内容 微博天然具有内容即时丰富的特点,可以通过名单/

话题/搜索等,将新浪微博的信息输出到第三方应用,获得最即时、最丰富、最活跃、最热门的微博消息,紧急突发事件,提供来自现场的最新资讯。

内容通过新浪微博进行审核 API 全部内容通过新浪微博审核,第三方应用无审核压力,专业的审核团队24小时待命。

降低网友参与门槛,提高网友参与度 微博内容简短,发布门槛低,天然有利于用户的加入,相比传统的论坛、博客、等形式,微博更有利于提高网友的活跃度,微博具有的分享、评论、对话、私信等功能,有利于网友之间产生互动。

获得在新浪微博进行品牌营销的机会

(1) 优秀的第三方开发者的官方微博,在新浪获得认可及推荐,在应用广场得● ● ●

,

到曝光,增加听众。

(2) 第三方应用产生微博来源显示第三方网站及网站名称,不仅能为网站带来

点击,同时也能增加在亿万级平台之上的曝光机会。

Web 服务有几种方式,传统的有WebService 和XML-RPC ,但是从目前趋势来看,越来越多的开放平台(Facebook 和Twitter 等)都使用REST 模式的API 接口。因此新浪微博平台也是使用REST 模式。

目前新浪微博几乎所有功能都有对应的API ,而且接口数量还在迅速增长中。新浪微博API 与其他平台差异性如下。

全面性。新浪微博提供各种全面数据访问接口。

开发支持。新浪微博接口提供所有主流开放语言SDK ,而且也处于长期不断改进中。另外在全国范围内也陆续组织多次本地新浪微博开发者面对面交流活动,介绍微博平台最新特性及进行现场开发者技术答疑。

易用性。在第一版API 设计中大部分是参考业界同行的设计思路,不过由于国内应用需求及网络环境差异,直接照搬国外经验未必完全合适,因此在后续版本API 会根据开发者需求做很多改进,提供优先考虑开发易用的API 。

详情请查看新浪微博开放平台文档:

典型应用类型

使用新浪微博开发API 可实现丰富的微博应用形式,包括:

1. 账号连接——使用新浪微博账号登录/绑定第三方网站,分享信息;

2. 个人展现——通过微博签名/关注按钮/微博秀等形式,展现用户个人/微博和粉丝

信息,让更多的人关注你,进而产生用户间的关系链;

3. 信息聚类——微博直播组件/一键关注/评论箱/集体微博组件,通过这些组件能够

聚合展现微博信息。

4. 用户互动——网站内容(网页/图片/视频)发表到微博,获取本站产生微博信息点

评,回馈到网站作为用户产生内容。

小工具、小游戏——更多精彩的应用形式,还等待各位开发者加入开放平台进行创作。 技术架构介绍

新浪微博采用标准OAuth 协议接入。

OAuth 是一种开发的协议,为桌面程序或者基于BS 的Web 应用提供了一种简单的,标准的方式去访问需要的用户授权的API 服务。OAuth 类似于Flickr Auth、Google 的AuthorSub 、Yahoo 的BBAuthor 、Facebook Auth等。OAuth 认证授权具有以下特点:

1. 简单:不管是OAuth 服务提供者还是应用开发者,都很容易于理解与使用;

2. 安全:没有涉及用户密钥等信息,更安全更灵活;

3. 开发:任何服务提供商都可以实现OAuth ,任何软件开发商都可以使用OAuth 。 第三方应用每次向OAuth 三个服务地址发送请求时,必须对请求进行签名。签名的方法有:HMAC-SHA1、RSA-SHA1与PLAINTEXT 等三种。新浪文本开放平台暂只支持HMAC-SHA1.

目前,OAuth2.0草案正在制定中。相比1.0而言,最主要的变化是增加了access token “refresh ”的概念,即access token不再是永久有效的,如果较长时间不使用则会过期。此

,

时需要用户“续期”才能继续使用。

新浪微博开放平台遵循最新的RFC5849协议。 架构上主要分为应用层、逻辑层、数据层三大块,可满足新浪数亿用户的访问需求。 应用层主要是开发者身份申请,APP_key申请,以及一键关注、微博秀,广播站、签名档等官方应用;

逻辑层主要包括房号模块server ,授权server 、微博对外API 接口、鉴权server 四部分; 存储层主要包括分布式数据存储模块、微博数据接口模块。 具体结果如下图1。

图1 新浪微博平台架构

具体的用户授权流程如图2:

第1步,用户点击连接钮,触发授权过程;

第2步,第三方软件向OAUTH 服务提供商请求未授权的request_token。向

request_tokenURL发起请求,请求需要带上的参数:(app_key、signature_method、signature 、times_tamp、nonce 、version 、callback_url)其中signature 由第三方对base_string(由各个参数组成的字符串)通过使用app_secret密钥,经过signature_method(HMAC-SHA1,RES-SHA1)方法进行签名;

第3、4、5步,验证第三方请求合法性,服务方用app_secrect密钥base_string进行签名,并验证得到的签名与第三方传过来的签名是否一致;

第6、7步,OAUTH 服务提供商同意使用者的请求,并向其颁发未经授权的request_token与对应的request_token_secret,并返回给使用者; 第8步,第三方重定向到服务方页面,让用户进行授权,此步请求通过GET 请求,带上request_token,此请求未签名; 第9步,OAUTH 服务提供商将引导用户授权。该过程可能会提示用户,你想将那些受保护的资源授权给第三方应用; 第10步,用户点击授权按钮,提交授权请求道User Authorization URL; 第11、12、13步,服务方验证request_token有效性(是否过期,是否已使用过),如

,

果有效,管理request_token与用户ID ;

第14、15步,服务方回调第三方的callback_url,带上request_token,及verify_code。Verify_code的作用,用于确认下步请求与回调对方是否同一用户。

第16步,第三方得知request_token授权后,第三方将向access_token URL 发起请求,将上步授权的request_token换成access_token。请求的参数,比第2步多了一个参数就是request_token,(app_key、request_token、signature_method、signature 、times_tamp、nonce 、version )其中signature 由第三对base_string(有各个参数组成的字符串)通过app_secret加上request_token_secret作为密钥,经过signature_method(HMAC-SHA1,RSA-SHA1)进行签名;

第17、18、19步,验证第三方换取access_token请求合法性,服务方用app_secrect与request_token_secret密钥对base_string进行签名,并验证得到的签名与第三方传过来的签名是否一致;

第20、21步,OAUTH 服务提供商同意第三方的请求,并向颁发access_token与对应的密钥(access_token_secret)。

,

图2 用户授权流程图

开放平台的发展方向

新浪微博2010年4月正式上线。2010年7月考虑开发第三方平台,9月内部系统联调通过。11月第一个合作伙伴应用正式推出,到现在发展势头良好。其发展历程如下:

第一步:对第三方开发者提供API 服务,可开发第三方应用;

第二步:搭建应用频道,面向第三方应用用户提供应用推荐及管理系统,面向开发者提供应用基本数据查看,开始对第三方应用提供运营帮助(目前处于此阶段);

第三步:为开发者提供全面的技术与运营服务,包括作为推广平台的影音频道第三方APP 的运营管理,及面向对第三方开发者,提供全面的应用数据查看及分析系统,并考虑为第三方应用提供服务器托管,通过提供技术咨询服务,以及组织开发者大会等形式,帮助第三方应用更好的发展,最终形成双赢的局面。

微创业:从开发平台和云计算开始

创业方式悄然更新

新浪云计算平台(Sina App Engine,一下简称SAE ),SAE 采用“所付即所用,所付仅所用”的收费方式,开发者可以以很低的成本开始自己的项目。当访问量小时,一天只需要发费几分钱;当访问量大时,也只需要为自己使用的资源付费,从而不会出现因为访问量激增后又回落造成的服务器资源闲置。更吸引人的是,目前只要是能进入新浪微博应用频道的应用,都无需向SAE 支付任何费用。

在架构上,SAE 是分布式设计,应用从第一次部署开始就是负载均衡的,直接可用的多种服务更是可以节省大量的开发时间,只需要专注于应用的业务逻辑,将宝贵的时间和精力都用到刀刃上。

再说说新浪微博开放平台。通过它,我们可以取得数千万用户的个人信息(需要用户授权)以及用户和用户自己的关系。更重要的是,我们可以通过它,以用户身份发微博(同样需授权),从而影响用户的粉丝,再通过他们的转发将信息进一步传递。

这使得我们能构造一个类似核裂变的信息传递链路,在短时间内覆盖大量用户,从而节省下大量的推广成本。

如何开始你的创业之路

了解开发流程

在开始开发微博应用之前,我们需要了解微博应用开发的流程,如下图所示。

,

图 SAE 上微博开发流程

在微博开放平台上,创建完应用就能获得App Key和App Secret,使用它们就可以操作接口了。但是这时候的App Key 是受限制的,比如最多只能1000个用户使用;在用户授权和发布的微博来源处不会显示应用的名称。只有提交“文案审核”并通过后,才会显示名称。当通过文案审核后,应用就可以提交“频道审核”,通过审核的应用将出现在新浪微博应用频道(http://t.sina.com.cn/app)供用户选用。新通过的应用会有一段时间出现在应用频道首页的“最新应用榜”这是我们快速获取第一批种子用户的一个重要入口。

创建新浪微博开发者账号和应用

在成为微博开发者之前,我们必须先有一个微博账号,微博应用的基本信息和统计数据都可以在这里看到。

账户注册和应用创建部分都是常规表格,微博开放平台上有详细的图文说明。 有一个非常重要的细节是,在提交应用信息时,一定要记得划上“同时申请新浪云计算平台邀请码”,这样顺利的话,在1~2个工作日后,就能收到SAE 的邀请码。

完成应用的创建后,可以在应用的管理页面看到应用的App Key和App Secret。这两个Key 直接和接口调用权限关联,尤其是App Secret,不应该提供给任何第三方。

在没有邀请码的情况下,也可以注册SAE 账号,但这种体验用的账号只能使用一周,之后将被回收。可以先创建体验账号,在获得邀请码后,直接将其转为正式账号。

创建SAE 账号和应用

SAE 是一个和GAE 比较类似的平台,我们可以在上边调试、运行甚至开发Web 应用(使用在线编辑器)。

和GAE 不同的是,SAE 支持的是在国内互联网中占主流的PHP 和MySQL 环境,这极大地降低了开发者的成本。一方面开发者不用再学习新的知识;另一方面有大量的现有程序稍加改动就能使用。从我们的实践来看,将WordPress 移植到SAE 只需要改动不到10行代码;而在SAE 上使用的Smart 用,只需要改动两行配置。

正因如此大量的开发者选择了SAE ,在微博Web 应用TOP10中,有 7个应用都使

,

用了SAE ,而按照目前新浪对微博应用的支持策略,这些应用不管访问量多大,开发者都不需要花一分钱。

回到用户注册上来,点击SAE 首页的“创建账号”链接,再填写开发者信息,通过邮件收到的邀请码和手机验证码后,就可以注册成为SAE 的用户了。

登录后,在“应用”栏目下的“我的应用”中可以创建一个新应用。

应用的Appname 同时也是二级域名的一部分,所以遵循域名定义规则。创建好的应用可以用appname.sinaapp.com 进行访问,目前还有一些不错的二级域名没有被注册,有兴趣的同学要抓紧哦。

,

开始开发应用

创建好应用之后,就可以进入应用的管理界面。 从左侧的分类可以知道,这里可以查看和设置应用的基本信息、管理应用的代码和成员、在线调试和查看访问日志以及初始化和设置各项服务。

标签: