微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=公共信息实时推送服务= <div class="wiki_txtJ"> 公共信息,主要包括地震实时数据、天气气象实时数据、地方热点实时数据等,服务于公众的公开数据。 微博开放平台将面向第三方开放这些数据的实时推送功能,有权限的合作伙伴接入后,将能实时获取到这些公共服务类数据。第三方结合自己的业务应用这些数据,最终提供给广大用户有价值的数据服务。 </div> ==接入流程== <div class="wiki_txtJ"> 目前微博开放平台仅先开放地震实时数据的推送,接入方可以到申请页面提交申请,审核通过后即可进入应用后台进行推送配置,实现数据的接入。 </div> <div style="font-size:14px;line-height:30px;padding:0 16px;background-color:#EFF8FB;display:inline-block;color:#fff;">[http://open.weibo.com/eq 地震实时数据接入申请]</div> ==第三方接收推送接口== <div style="margin:15px 0;"> 第三方接收公共信息推送服务推送过来的数据,需要有自己的服务器资源,并完成接收接口的开发。 </div> ===接收接口的配置与有效性验证=== <div style="margin:15px 0;"> 第三方需要到微博公共信息服务平台配置自己的接收接口,即填写URL和一个token,其中URL就是第三方用来接收微博公共信息服务器传输数据的接口URL。而token将用作生成一个签名(该签名会和接口URL中包含的签名进行比对,从而让第三方可以验证请求的安全性)。 在第三方首次连接微博公共信息服务时,需要先通过一次校验来和微博服务器建立首次连接,具体来说: 第三方提交URL等信息后,微博公共信息服务器将发送GET请求到填写的URL上,GET请求携带四个参数: </div> {|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table" <html><colgroup></colgroup></html> !width="20%"|校验参数字段 !width="15%"|字段类型 !width="65%"|字段说明 |- |signature |string |微博加密签名,signature结合了开发者填写的token、和请求中的timestamp参数,nonce参数。 |- |timestamp |string |时间戳。 |- |nonce |string |随机数。 |- |echostr |string |随机字符串。 |} <div style="margin:15px 0;"> 开发者收到请求后,首先通过加密后的signature参数来校验GET请求的真实性,如果确认此次GET请求来自微博公共信息服务器,原样返回echostr参数内容就可以成功建立首次连接,否则连接失败。 signature参数的加密规则为: 将开发者填写的token,和timestamp参数,nonce参数进行字典排序后,将三个参数字符串拼接成一个字符串进行sha1加密。 例如: </div> <div class="code_type">校验参数</div> <pre class="brush:php"> token = xyz123xyz //开发者填写接收接口URL时,一起填写的token,由开发者自己设定 timestamp = 1397022061823 nonce = 57155157 </pre> <div class="code_type">加密结果</div> <pre class="brush:php"> //拼接后的字符串为: 139702206182357155157xyz123xyz //sha1签名后的结果为: 90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 //验证url有效性请求的样例为: http://yoururl?nonce=57155157×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 </pre> <div style="margin:15px 0;"> 此时如果返回的是echostr的值(此样例中为dnPdpTZz85)则通过URL验证。 </div> <div class="code_type">PHP代码示例</div> <pre class="brush:php"> function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token= token; //开发者填写的token $tmpArr = array($appsecret, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } </pre> ==推送数据类型及数据说明== <div style="margin:15px 0;"> 推送数据按数据类型区分,比如地震数据、天气数据等,不同的数据类型单独区分权限,即仅有地震数据权限的第三方将只能接收到地震类型的数据。 </div> ===地震实时基础数据=== <div style="margin:15px 0;"> <div class="code_type">JSON数据示例</div> <pre class="brush:js"> { "type": "earthquake", "sub_type": "base", "push_at": "Mon Jul 16 18:09:20 +0800 2012", "data": { "data_id": "CD20141225101208.00", "earthquake_time": "2014年12月25日10时12分07.0秒", "longitude": "119.241997", "latitude": "46.457298", "depth": "53.599998", "level": "3.1", "place": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", "record_type": "M" } } </pre> </div> <div style="margin:15px 0;">'''数据说明'''</div> {|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table" <html><colgroup></colgroup></html> !width="20%"|属性 !width="15%"|值的类型 !width="65%"|说明描述 |- |data_id |string |地震数据编号。 |- |earthquake_time |string |地震发生时间。 |- |longitude |string |地震发生经度。 |- |latitude |string |地震发生纬度。 |- |depth |string |地震发生深度,单位千米。 |- |level |string |地震震级。 |- |place |string |地震发生地点。 |- |record_type |string |地震测定类型,A:自动测定,M:手动测定。 |} {{#a:nobtns|noheading}} __NOTOC__
返回到
PublicPush
。
反馈
分享
顶部