(未显示1个用户的3个中间版本) | |||
第1行: | 第1行: | ||
− | = | + | =合作数据推送服务= |
<div class="wiki_txtJ"> | <div class="wiki_txtJ"> | ||
− | + | 数据推送就是将微博上产生的公开内容,比如微博和评论,通过POST方式主动调用第三方接收接口,将数据推送(PUSH)给第三方的一种接入方式。这种接入方式适用于蓝V账号运营、智能服务账号等第三方开发者,可以将和第三方的微博账号有关的数据,传递给第三方进行运营或者智能处理。 | |
− | + | 例如,某蓝V账号,需要维护或回复用户发给自己的评论,则可以通过这种接入方式获取到这些评论,并结合回复评论接口,完成自己的账号运营。 | |
+ | |||
+ | |||
+ | 又例如,某智能服务账号,可以针对其粉丝发布的微博内容进行智能分析或智能处理,则可以通过这种接入方式获取到这些微博,并结合发布评论接口、转发接口等方式,将智能理解后的信息发送给粉丝,完成智能服务。 | ||
</div> | </div> | ||
第12行: | 第15行: | ||
<div class="wiki_txtJ"> | <div class="wiki_txtJ"> | ||
− | + | 目前微博开放平台仅对特定的合作方开放此服务的接入,需要接入的合作方请联系微博商务人员进行合作洽谈。 | |
</div> | </div> | ||
− | <div | + | |
− | + | <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> | |
− | + | ||
− | + | ||
− | </div> | + | |
第25行: | 第25行: | ||
<div style="margin:15px 0;"> | <div style="margin:15px 0;"> | ||
− | + | 第三方接收数据推送服务推送过来的数据,需要有自己的服务器资源,并完成接收接口的开发。 | |
</div> | </div> | ||
第32行: | 第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" | {|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table" | ||
<html><colgroup></colgroup></html> | <html><colgroup></colgroup></html> | ||
− | !width=" | + | !width="20%"|校验参数字段 |
− | !width=" | + | !width="15%"|字段类型 |
− | !width=" | + | !width="65%"|字段说明 |
|- | |- | ||
|signature | |signature | ||
|string | |string | ||
− | | | + | |加密签名,结合了第三方填写的token和请求中的timestamp,nonce参数。 |
|- | |- | ||
|timestamp | |timestamp | ||
第65行: | 第62行: | ||
<div style="margin:15px 0;"> | <div style="margin:15px 0;"> | ||
− | + | 开发者收到请求后,首先通过加密后的signature参数来校验POST请求的真实性,如果确认此次POST请求来自微博开放平台服务器,原样返回echostr参数内容就可以成功建立首次连接,否则连接失败。 | |
第71行: | 第68行: | ||
− | + | 将开发者填写的token,和timestamp参数,nonce参数进行字典排序后,将三个参数字符串拼接成一个字符串进行sha1加密。 | |
+ | |||
+ | |||
+ | 例如: | ||
</div> | </div> | ||
− | <pre> | + | <div class="code_type">校验参数</div> |
− | + | <pre class="brush:php"> | |
− | token=xyz123xyz //开发者填写接收接口URL时,一起填写的token,由开发者自己设定 | + | token = xyz123xyz //开发者填写接收接口URL时,一起填写的token,由开发者自己设定 |
− | timestamp=1397022061823 | + | timestamp = 1397022061823 |
− | nonce=57155157 | + | nonce = 57155157 |
+ | </pre> | ||
− | + | <div class="code_type">加密结果</div> | |
− | 拼接后的字符串为: | + | <pre class="brush:php"> |
+ | //拼接后的字符串为: | ||
139702206182357155157xyz123xyz | 139702206182357155157xyz123xyz | ||
− | sha1签名后的结果为: | + | |
+ | //sha1签名后的结果为: | ||
90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 | 90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 | ||
− | 验证url有效性请求的样例为: | + | |
+ | //验证url有效性请求的样例为: | ||
http://yoururl?nonce=57155157×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 | http://yoururl?nonce=57155157×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1 | ||
− | |||
− | |||
</pre> | </pre> | ||
+ | |||
+ | <div style="margin:15px 0;"> | ||
+ | 此时如果返回的是echostr的值(此样例中为dnPdpTZz85)则通过URL验证。 | ||
+ | </div> | ||
第114行: | 第120行: | ||
− | + | ==推送数据类型及数据说明== | |
<div style="margin:15px 0;"> | <div style="margin:15px 0;"> | ||
− | + | 推送数据,微博将以multipart/form-data的形式POST给第三方,目前支持4种数据类型:原创微博、转发微博、评论、回复评论。 | |
− | + | ||
− | + | 具体的数据说明,签署并达成合作后,微博侧的对接人员会提供。 | |
+ | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
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×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1
此时如果返回的是echostr的值(此样例中为dnPdpTZz85)则通过URL验证。
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种数据类型:原创微博、转发微博、评论、回复评论。
具体的数据说明,签署并达成合作后,微博侧的对接人员会提供。