新手接入指南
粉絲服務平臺接入流程

粉絲服務平臺開發(fā)模式接入流程

第一步:申請消息接口
媒體,企業(yè),個人認證帳號,在帳號的Profile頁點擊“管理中心”,然后點擊“粉絲服務"菜單的”高級功能“,里面可以選擇開啟“編輯模式”或者“開發(fā)模式”。
當選擇開啟”開發(fā)模式“后,需要填寫URL和APPKEY,其中URL是開發(fā)者用來接收微博消息服務器數(shù)據(jù)的接口URL。APPKEY為微博認證用戶指定并授權要為其開發(fā)服務的開發(fā)者應用KEY,該APPKEY所對應的APP Secret,將用作生成簽名(該簽名會和接口URL中包含的簽名進行比對,從而驗證請求的安全性)。
第二步:驗證URL有效性
在開發(fā)者首次使用事件推送服務時,需要先通過一次校驗來和微博服務器建立首次連接,具體來說:
開發(fā)者提交信息后,微博消息服務器將發(fā)送GET請求到填寫的URL上,GET請求攜帶四個參數(shù):
開發(fā)者收到請求后,首先通過加密后的signature參數(shù)來校驗GET請求的真實性,如果確認此次GET請求來自微博服務器,原樣返回echostr參數(shù)內(nèi)容就可以成功建立首次連接,否則連接失敗。
signature參數(shù)的加密規(guī)則為:
將開發(fā)者的appsecret,timestamp參數(shù),nonce參數(shù)進行字典排序后,將三個參數(shù)字符串拼接成一個字符串進行sha1加密校驗參數(shù):
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; //開發(fā)者的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示例代碼下載:下載
java示例代碼下載:下載
第三步:成為開發(fā)者,獲取access_token
驗證URL有效性成功后即接入生效,成為開發(fā)者,此后用戶每次向微博認證帳號發(fā)送消息、或者產(chǎn)生自定義菜單點擊事件時,響應URL將得到推送。
另外建立首次連接后,后續(xù)每次微博事件推送時也都會帶上signature、timestamp、nonce三個參數(shù),開發(fā)者依然可以通過對signature的校驗判斷此條消息的真實性,校驗方式與首次建立連接一致,此外請注意,粉服平臺開發(fā)接口只支持80接口。
驗證URL成功后,粉服平臺還會自動返回一個access_token,如下圖所示:
開發(fā)者使用 接收消息 和 發(fā)送被動消息 功能并不需要access_token,但粉服開發(fā)模式的很多其他接口,如發(fā)送被動響應消息,調(diào)用時需要access_token參數(shù)作為憑證;
關于access_token的更多介紹可以參見:
附:長連接模式
除了以上的推送接入模式外,我們還提供了額外的長連接接入模式。該模式除了接入的技術方法不同外,功能上都是完全一樣的。
長連接模式的特點是,第三方開發(fā)者主動建立連接請求,長連接建立后,有新的消息事件將實時返回給第三方開發(fā)者,而不是被動等待微博消息服務器的GET請求,第三方開發(fā)者的控制自主性更強一點,但相應的開發(fā)難度也會大一些。