查看源代码
跳转到: 导航, 搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用: 用户
您可以查看并复制此页面的源代码:=粉丝服务平台开发接口接入指南=
本指南文档可以指导你完成使用『粉丝服务平台开发模式』的主要步骤。
==第一步:申请消息接口==
媒体,企业,个人认证帐号,在帐号的Profile页点击“管理中心”,然后点击“粉丝服务"菜单的”高级功能“,里面可以选择开启“编辑模式”或者“开发模式”。
当选择开启”开发模式“后,需要填写URL和APPKEY,其中URL是开发者用来接收微博消息服务器数据的接口URL。APPKEY为微博认证用户指定并授权要为其开发服务的开发者应用KEY,该APPKEY所对应的APP Secret,将用作生成签名(该签名会和接口URL中包含的签名进行比对,从而验证请求的安全性)。
==第二步:验证URL有效性==
在开发者首次使用事件推送服务时,需要先通过一次校验来和微博服务器建立首次连接,具体来说:
开发者提交信息后,微博消息服务器将发送GET请求到填写的URL上,GET请求携带四个参数:
{| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color:#CCCCCC;"
|-
!width="15%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|校验参数字段
!width="10%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段类型
!width="75%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|字段说明
{{rdes_args|signature|string|微博加密签名,signature结合了开发者的appsecret、和请求中的timestamp参数,nonce参数}}
{{rdes_args|timestamp|string|时间戳}}
{{rdes_args|nonce|string|随机数}}
{{rdes_args|echostr|string|随机字符串}}
|}
开发者收到请求后,首先通过加密后的signature参数来校验GET请求的真实性,如果确认此次GET请求来自微博服务器,原样返回echostr参数内容就可以成功建立首次连接,否则连接失败。
signature参数的加密规则为:
将开发者的appsecret,timestamp参数,nonce参数进行字典排序后,将三个参数字符串拼接成一个字符串进行sha1加密
'''校验参数:'''
appsercret=xyz123xyz
timestamp=1397022061823
nonce=57155157
'''加密结果:'''
拼接后的字符串为:139702206182357155157xyz123xyz
sha1签名后的结果为:90e4c22c90a58f26526c2dd5b6c56c8822edeaa1
验证url有效性请求的样例为:
http://yoururl?nonce=57155157×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c2dd5b6c56c8822edeaa1
此时如果返回的是echostr的值(此样例中为dnPdpTZz85)则通过url验证。
PHP代码示例:
function checkSignature() {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$appsecret= appsecret; //开发者的appsecret
$tmpArr = array($appsecret, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
php示例代码下载:[http://www.sinaimg.cn/blog/developer/wiki/xiaoxituisong_php_demo.rar 下载]
java示例代码下载:[http://www.sinaimg.cn/blog/developer/wiki/xiaoxituisong_java_demo.rar 下载]
==第三步:成为开发者,获取access_token==
验证URL有效性成功后即接入生效,成为开发者,此后用户每次向微博认证帐号发送消息、或者产生自定义菜单点击事件时,响应URL将得到推送。
另外建立首次连接后,后续每次微博事件推送时也都会带上signature、timestamp、nonce三个参数,开发者依然可以通过对signature的校验判断此条消息的真实性,校验方式与首次建立连接一致,此外请注意,粉服平台开发接口只支持80接口。
验证URL成功后,粉服平台还会自动返回一个access_token,如下图所示:
开发者使用 [[接收消息|接收消息]] 和 [[发送被动响应消息|发送被动消息]] 功能并不需要access_token,但粉服开发模式的很多其他接口,如[[发送被动响应消息|发送被动响应消息]],调用时需要access_token参数作为凭证;
关于access_token的更多介绍可以参见:
==附:长连接模式==
除了以上的推送接入模式外,我们还提供了额外的长连接接入模式。该模式除了接入的技术方法不同外,功能上都是完全一样的。
长连接模式的特点是,第三方开发者主动建立连接请求,长连接建立后,有新的消息事件将实时返回给第三方开发者,而不是被动等待微博消息服务器的GET请求,第三方开发者的控制自主性更强一点,但相应的开发难度也会大一些。
喜欢长连接模式的人,可以参见如下文档,进行接入:
__NOTOC__