跳转到: 导航, 搜索
(以“=公共信息实时推送服务= <div class="wiki_txtJ"> 公共信息,主要包括地震实时数据、天气气象实时数据、地方热点实时数据等,...”为内容创建页面)
 
 
(未显示1个用户的5个中间版本)
第1行: 第1行:
=公共信息实时推送服务=
+
=合作数据推送服务=
  
 
<div class="wiki_txtJ">
 
<div class="wiki_txtJ">
公共信息,主要包括地震实时数据、天气气象实时数据、地方热点实时数据等,服务于公众的公开数据。
+
数据推送就是将微博上产生的公开内容,比如微博和评论,通过POST方式主动调用第三方接收接口,将数据推送(PUSH)给第三方的一种接入方式。这种接入方式适用于蓝V账号运营、智能服务账号等第三方开发者,可以将和第三方的微博账号有关的数据,传递给第三方进行运营或者智能处理。
 +
 
 +
 
 +
例如,某蓝V账号,需要维护或回复用户发给自己的评论,则可以通过这种接入方式获取到这些评论,并结合回复评论接口,完成自己的账号运营。
 +
 
 +
 
 +
又例如,某智能服务账号,可以针对其粉丝发布的微博内容进行智能分析或智能处理,则可以通过这种接入方式获取到这些微博,并结合发布评论接口、转发接口等方式,将智能理解后的信息发送给粉丝,完成智能服务。
 
</div>
 
</div>
  
第8行: 第14行:
 
==接入流程==
 
==接入流程==
  
<div style="margin:15px 0;">
+
<div class="wiki_txtJ">
目前微博开放平台仅先开放地震实时数据的推送,接入方可以到申请页面提交申请,审核通过后即可进入应用后台进行推送配置,实现数据的接入。
+
目前微博开放平台仅对特定的合作方开放此服务的接入,需要接入的合作方请联系微博商务人员进行合作洽谈。
 
</div>
 
</div>
  
<div class="wiki_taglist">
+
 
<ul class="clearfix">
+
<div style="font-size:14px;line-height:30px;padding:0 16px;background-color:#EFF8FB;display:inline-block;color:#fff;">[https://open.weibo.com/cooperation/apply 合作数据推送服务接入申请]</div>
<li style="font-size:14px;">[[http://open.weibo.com/eq|地震实时数据接入申请]]</li>
+
</ul>
+
</div>
+
  
  
第22行: 第25行:
  
 
<div style="margin:15px 0;">
 
<div style="margin:15px 0;">
第三方接收公共信息推送服务推送过来的数据,需要有自己的服务器资源,并完成接收接口的开发。
+
第三方接收数据推送服务推送过来的数据,需要有自己的服务器资源,并完成接收接口的开发。
 
</div>
 
</div>
  
第29行: 第32行:
  
 
<div style="margin:15px 0;">
 
<div style="margin:15px 0;">
 +
第三方配置接收接口,即填写URL和一个token,其中URL就是第三方接收接口的URL,而token将用作生成一个签名,该签名会和接口URL中包含的签名进行比对,从而让第三方可以验证请求的安全性。
  
 +
 +
在第三方提交接收接口配置时,会先通过一次校验来和微博服务器建立首次连接。具体来说:第三方配置接收接口的URL等信息后,微博推送服务器将发送POST请求到填写的URL上,POST请求携带四个参数:
 
</div>
 
</div>
  
 +
{|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table"
 +
<html><colgroup></colgroup></html>
 +
!width="20%"|校验参数字段
 +
!width="15%"|字段类型
 +
!width="65%"|字段说明
 +
|-
 +
|signature
 +
|string
 +
|加密签名,结合了第三方填写的token和请求中的timestamp,nonce参数。
 +
|-
 +
|timestamp
 +
|string
 +
|时间戳。
 +
|-
 +
|nonce
 +
|string
 +
|随机数。
 +
|-
 +
|echostr
 +
|string
 +
|随机字符串。
 +
|}
  
===推送数据类型及数据说明===
+
<div style="margin:15px 0;">
 +
开发者收到请求后,首先通过加密后的signature参数来校验POST请求的真实性,如果确认此次POST请求来自微博开放平台服务器,原样返回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&timestamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1
 +
</pre>
  
 
<div style="margin:15px 0;">
 
<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;">
 +
推送数据,微博将以multipart/form-data的形式POST给第三方,目前支持4种数据类型:原创微博、转发微博、评论、回复评论。
 +
 +
 +
具体的数据说明,签署并达成合作后,微博侧的对接人员会提供。
 
</div>
 
</div>
  
  
====地震实时基础数据====
+
 
 +
 
 +
 
 +
 
 +
{{#a:nobtns|noheading}}
 +
__NOTOC__

2024年3月25日 (一) 17:14的最后版本

合作数据推送服务

数据推送就是将微博上产生的公开内容,比如微博和评论,通过POST方式主动调用第三方接收接口,将数据推送(PUSH)给第三方的一种接入方式。这种接入方式适用于蓝V账号运营、智能服务账号等第三方开发者,可以将和第三方的微博账号有关的数据,传递给第三方进行运营或者智能处理。


例如,某蓝V账号,需要维护或回复用户发给自己的评论,则可以通过这种接入方式获取到这些评论,并结合回复评论接口,完成自己的账号运营。


又例如,某智能服务账号,可以针对其粉丝发布的微博内容进行智能分析或智能处理,则可以通过这种接入方式获取到这些微博,并结合发布评论接口、转发接口等方式,将智能理解后的信息发送给粉丝,完成智能服务。


接入流程

目前微博开放平台仅对特定的合作方开放此服务的接入,需要接入的合作方请联系微博商务人员进行合作洽谈。



第三方接收推送接口

第三方接收数据推送服务推送过来的数据,需要有自己的服务器资源,并完成接收接口的开发。


接收接口的配置与有效性验证

第三方配置接收接口,即填写URL和一个token,其中URL就是第三方接收接口的URL,而token将用作生成一个签名,该签名会和接口URL中包含的签名进行比对,从而让第三方可以验证请求的安全性。


在第三方提交接收接口配置时,会先通过一次校验来和微博服务器建立首次连接。具体来说:第三方配置接收接口的URL等信息后,微博推送服务器将发送POST请求到填写的URL上,POST请求携带四个参数:

校验参数字段 字段类型 字段说明
signature string 加密签名,结合了第三方填写的token和请求中的timestamp,nonce参数。
timestamp string 时间戳。
nonce string 随机数。
echostr string 随机字符串。

开发者收到请求后,首先通过加密后的signature参数来校验POST请求的真实性,如果确认此次POST请求来自微博开放平台服务器,原样返回echostr参数内容就可以成功建立首次连接,否则连接失败。


signature参数的加密规则为:


将开发者填写的token,和timestamp参数,nonce参数进行字典排序后,将三个参数字符串拼接成一个字符串进行sha1加密。


例如:

校验参数
token = xyz123xyz   //开发者填写接收接口URL时,一起填写的token,由开发者自己设定
timestamp = 1397022061823
nonce = 57155157
加密结果
//拼接后的字符串为:
139702206182357155157xyz123xyz

//sha1签名后的结果为:
90e4c22c90a58f26526c2dd5b6c56c8822edeaa1

//验证url有效性请求的样例为:
http://yoururl?nonce=57155157&timestamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1

此时如果返回的是echostr的值(此样例中为dnPdpTZz85)则通过URL验证。


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;
	}
}


推送数据类型及数据说明

推送数据,微博将以multipart/form-data的形式POST给第三方,目前支持4种数据类型:原创微博、转发微博、评论、回复评论。


具体的数据说明,签署并达成合作后,微博侧的对接人员会提供。





文档更新时间: 2024-03-25