新手接入指南
粉絲服務平台存取流程
#粉絲服務平台開發模式存取流程
#第一步:申請訊息介面
媒體,企業,個人認證帳號,在帳號的Profile頁點擊“管理中心”,然後點選「粉絲服務"選單的」進階功能“,裡面可以選擇開啟「編輯模式」或「開發模式」。
當選擇開啟」開發模式「後,需要填寫URL和APPKEY,其中URL是開發者用來接收微博訊息伺服器資料的介面URL。 APPKEY為微博認證使用者指定並授權要為其開發服務的開發者應用KEY,該APPKEY所對應的APP Secret,將用作生成簽名(該簽名會和接口URL中包含的簽名進行比對,從而驗證請求的安全性)。
第二步:驗證URL有效性
在開發者首次使用事件推送服務時,需要先透過一次校驗來和微博伺服器建立首次連接,具體來說:
開發者提交資訊後,微博訊息伺服器將發送GET請求到填寫的URL上,GET請求攜帶四個參數:
開發者收到請求後,先透過加密後的signature參數來校驗GET請求的真實性,如果確認此次GET請求來自微博伺服器,原樣回傳echostr參數內容就可以成功建立首次連接,否則連接失敗。
signature參數的加密規則為:
將開發者的appsecret,timestamp參數,nonce參數進行字典排序後,將三個參數字串拼接成一個字串進行sha1加密校驗參數:
##appsercret=xyz123xyz timestamp=1397022061823 nonce=57155157加密結果:
拼接後的字串為:139702206182357155157xyz123xyzsha1簽章後的結果為:90e4c22126586 ##驗證url有效性請求的範例為:http://yoururl?nonce=57155157×tamp=1397022061823&echostr=dnPdpTZz85&signature=90e4c22c90a58f26526c25&signature=90e4c22c90a58f26526c225b6c56c285b6256c285b8> z85)則透過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範例程式碼下載:下載
#java範例程式碼下載:下載
##第三步:成為開發者,取得access_token
驗證URL有效性成功後即接入生效,成為開發者,此後用戶每次向微博認證帳號發送訊息、或者產生自訂選單點擊事件時,響應URL將被推送。 另外建立首次連結後,後續每次微博事件推送時也會帶上signature、timestamp、nonce三個參數,開發者仍可透過signature的校驗判斷此訊息的真實性,校驗方式與首次建立連線一致,此外請注意,粉服平台開發介面只支援80介面。驗證URL成功後,粉服平台也會自動傳回一個access_token,如下圖所示:
關於access_token更多的介紹可以參考:
附:長連線模式##除了以上的
推送存取模式外,我們還提供了額外的長連線存取模式。此模式除了接入的技術方法不同外,功能上都是完全一樣的。
長連線模式的特點是,第三方開發者主動建立連線請求,長連線建立後,有新的訊息事件將即時回傳給第三方開發者,而不是被動等待微博訊息伺服器的GET請求,第三方開發者的控制自主性更強一點,但對應的開發難度也會大一些。