1. 程式人生 > >新浪微博私信,即時聊天介面研究

新浪微博私信,即時聊天介面研究

由於要寫個chrome外掛來進行發發私信什麼的 你懂得,,,,

由於是個外掛,就不要去研究模擬登陸啦,cookie問題不用考慮,可以用ajax任意訪問weibo的所有地址

但是如果兩人從來沒有交流過,那麼第一次發私信是要過驗證碼的

但是有種情況不需要,那就是用新浪的im,就是右下角的即時聊天的那個玩意,研究發現,如果需要呼叫者個即時聊天的介面,需要如下幾個步驟

第一步之前:獲取伺服器,管道

ajax,GET傳送內容到:http://nas.im.api.weibo.com/im/webim.jsp

  1. v: 1.1
  2. returntype: json
  3. uid: 1824450144
  4. callback:callback
返回的內容有兩個,全部儲存下來

{"channel":"/im/51sr84_1824450144", "server":"http://13.79.web1.im.weibo.com/"}

第一步: 握手 handleshake

伺服器地址+im 就是根地址了,比如:(伺服器上一步已經獲取)

http://11.79.web1.im.weibo.com/im

ajax,GET傳送內容到該地址

  1. jsonp: callback
  2. message: [{"version":"1.0","minimumVersion":"0.9","channel":"/meta/handshake","supportedConnectionTypes":{"0":"callback-polling"},"id":1}]
由於新浪是用script來模擬一個get來跨域請求這個介面的,所以每次返回的內容,自動將返回內容對你設定的回撥函式進行執行,我們在ajax裡只要eval一下即可,比如:

callback([{"id":"1","minimumVersion":"1.0","supportedConnectionTypes":["websocket","callback-polling","long-polling"],"successful":true,"channel":"/meta/handshake","ext":{"timesync":{"ts":1377155460536,"tc":1377155466453

,"p":0,"a":5917},"ack":true},"clientId":"1n8zz1g60ncoj1hxuumbuutbw9f5ri","version":"1.0"}])


我們只要事先定義一個callback函式即可,這一步,我們得到一個重要的引數,那就是clientId,儲存下來。

ps:看上邊返回的資料,還支援websocket,但是不知道具體的協議是什麼,沒法呼叫

第二步:連線 connect

要想傳送訊息,還需要連線

ajax,GET傳送如下內容到根地址

  1. jsonp: callback
  2. message: [{"channel":"/meta/connect","connectionType":"callback-polling","id":3,"clientId":"1n8zz1g60ncoj1hxuumbuutbw9f5ri"}]
注意callback的用法上邊講過了,上邊的資料,注意那個clientId,是第一步的握手得到的

連線之後的返回內容,基本沒啥用,如下:

callback([{"id":"3","successful":true,"advice":{"interval":0,"reconnect":"retry","timeout":180000},"channel":"/meta/connect"}])

告訴你是否成功,等等

第三步:註冊subscribe

也可以翻譯成出席,等等,仁者見仁

ajax,GET傳送如下資料

  1. jsonp: callback
  2. message: [{"channel":"/meta/subscribe","subscription":"這裡是一開始獲取到的chanel","id":4,"clientId":"第一步取到的clientid"},{"channel":"/im/req","data":{"online":"1","limit":"2000","seq":"min","cmd":"roster"},"id":2,"clientId":"1n8zz1g60ncoj1hxuumbuutbw9f5ri"}]

可以看到message是個陣列,意思是其實每次可以連續傳送多條資訊,上邊的第一條是個註冊資訊,緊接著應該是一條我上線啦的資訊,可以刪除

第四部:就可以傳送訊息咯

  1. jsonp: callback
  2. message: [{"channel":"/im/req","data":{"uid":"1905031563","seq":"1905031563","msg":"撒旦法","cmd":"msg"},"id":18,"clientId":"1r2fn1qx5aa1eho5ot122pgyldmkmci"}]
uid改成你要傳送的uid還有seq,,訊息你懂得 ok,其實還是有其它的一下介面的,這裡不再細說

我寫的一個微博外掛 https://github.com/suxianbaozi/autoreply

相關推薦

私信即時聊天介面研究

由於要寫個chrome外掛來進行發發私信什麼的 你懂得,,,, 由於是個外掛,就不要去研究模擬登陸啦,cookie問題不用考慮,可以用ajax任意訪問weibo的所有地址 但是如果兩人從來沒有交流過,那麼第一次發私信是要過驗證碼的 但是有種情況不需要,那就是用新浪的i

qq登入登入 介面開發

給linux命令線上中文手冊加了,qq登入和新浪微博登入,認證用的是auth2.0,並且用了js api和php api相結合的方式來做的。個人覺得這種方式,兼顧安全和人性化。以前寫過一篇關於申請的部落格,請參考: 1,js api的優點,就是彈窗登入,不要跳來跳去,煩

優化可參考大併發

大家下午好,在座的大部分都是技術開發者,技術開發者往往對微博這個產品非常關心。最晚的一次,是12點多收到一個郵件說想了解一下微博底層是 怎麼構架的。很多技術人員對微博的構架非常感興趣,就是一個明星他有300萬粉絲,這個技術怎麼來實現?今天在這裡跟大家分享一下微博的底層機構

關於開放平臺第三方登入介面問題

 我在做新浪微博授權登入時,遇到這麼一個問題手工輸入新浪的賬號密碼,可以跳到我的回撥頁獲取token,新浪使用者資訊。但是用他們的二維碼掃碼登入,token就獲取不到了,這是為什麼呢? 通過閱讀新浪微

python 爬蟲1 開始先拿開始

大括號 版本 install esp con data- 定位 ble Language 剛剛開始學。 目的地是兩個。一個微博,一個貼吧 存入的話,臨時還沒想那麽多。先存到本地目錄吧 分詞和推薦後面在整合 mysql mongodb hadoop redius 後面在用

Python爬蟲開源項目代碼爬取信、淘寶、豆瓣、知乎、、QQ、去哪網等 代碼整理

http server 以及 pro 模擬登錄 取數 存在 漏洞 搜狗 作者:SFLYQ 今天為大家整理了32個Python爬蟲項目。 整理的原因是,爬蟲入門簡單快速,也非常適合新入門的小夥伴培養信心。所有鏈接指向GitHub,祝大家玩的愉快~ 1、WechatSogou

華為終端-聯合創新3D建模+AR 成就全新社交體驗

近日,全球首款搭載3D感知攝像頭的手機華為Mate 20釋出。 通過Mate 20自帶的景深攝像頭及麒麟980的NPU加速能力,手機能夠在獲取物體表面資訊後,完成高速的精細化3D建模。 那麼,如何讓3D建模更貼近使用者生活、為使用者帶來更多樂趣?今年7月,華為三方創新實驗室與新浪微博開展聯合創新,共同發力

android sdk 整合 檔案不存在(8998) 您所訪問的站點在的認證失敗錯誤碼 21322

問題:使用mSsoHandler.authorize(new AuthListener()); 請求授權 微部落格戶端報 檔案不存在(8998)             使用mSsoHandler.authorizeWeb(new Au

:絕境逢生處務實精神驅動下的技術成熟

2009年初夏,一個已經接近完工的大專案“朋友”團隊,在理想國際大廈面向新浪CEO曹國偉等人做了兩個多小時的產品彙報,這款定位在社交場景下的產品,被決策層判定“沒明白核心賣點是什麼”、“產品不夠簡單、不具傳播性”。 “朋友”在新浪互動社群部研發兩年後終遭擱淺。彼時,新浪部落格的風頭漸弱,新浪亟待尋找一個新的

修改 support 包 TabLayout實現/即刻 APP 蚯蚓導航效果

原博地址: 修改 support 包 TabLayout,實現新浪微博/即刻 APP 蚯蚓導航效果 Github: tablayout-android 修改 support 包 TabLayout,實現新浪微博/即刻 APP 蚯蚓導航效果 用法 TabLayout 核心用法不變,新增一些自定義屬性。

【2019&筆試題目】判斷連結串列是否為迴文結構空間負責度為O(1)時間複雜度為O(n)

原題描述 判斷一個連結串列是否為迴文結構,要求額外空間複雜度為O(1),時間複雜度為O(n) 解題思路 一、雙向連結串列 如果連結串列是雙向連結串列,那簡直不要太完美。直接從連結串列兩端向中間遍歷即可判定 可惜,這個題目肯定不會說的是這種情況,

2018秋招運維面試題彙總(小米百度vipkid等)

小白的運維面試經驗分享: 一.百度一面: 第一次面試,是電話面試,當時正在睡覺,接到電話趕緊去洗把臉清醒了一下,這次電話面試大概65分鐘吧,問的東西很多很多,基本像網路,資料結構,C,C++,運維相關知識都問到了,感覺還是很有水平的一個面試哈哈哈: 1.做一下自

iOS開發整合友盟登入授權失敗responseCode等於5051

        在專案中整合友盟第三方登入,新浪微博登入,登入授權失敗,返回狀態碼為5051(獲取賬戶失敗)。 原因:         App在測試階段(未上線),授權的微博賬號和開通開放平臺的微博賬號不是同一賬號。 解決辦法:         在新浪微博開放

看到很多人都寫的是javascript:void(0);也是為什麼不能直接寫成javascript:;?

北風網解答: 對於void的說明: void 運算子對任何值返回 undefined。該運算子通常用於避免輸出不應該輸出的值,例如,從 HTML 的 <a> 元素呼叫 JavaScript 函式時。要正確做到這一點,函式不能返回有效值,否則瀏覽器將清空頁面,

【forlong401的專欄--有問題上:http://www.androidren.com】Android and iOS Now! 多交流技術多分享技術只有分享才會經久不衰。 歡迎關注:@forlong401 。http://weibo.

Android and iOS Now! 多交流技術,多分享,技術只有分享,才會經久不衰。 歡迎關注新浪微博:@forlong401 。http://weibo.com/forlong401...

關於爬取記憶體耗用過高的問題

      最近在做網際網路輿情分析時,需要爬取新浪微博做相關實驗。雖然新浪微博開放了相關輿論的API,然而申請什麼的,並不想做,而且輿情變化快,最終還是自己爬取,相關輿情。      在用selenium的時候,有時候經常發現記憶體耗

王寶強離婚事件的洪荒之力怎樣靠技術支撐?

前言8月14日凌晨時分,演員王寶強突然在微博上發出離婚宣告,直指妻子馬蓉出軌經紀人,並宣佈解除與馬蓉的婚姻關係。該訊息發出後,迅速成為熱點話題,在微博上炸開了鍋。據小道訊息稱,在這次的熱點事件中,微博流量相較於往常的熱點,增長了數倍,甚至在話題高峰期,有部分服務被短暫打死。 之前微博曾披露過他們已經遷移到基於

推薦:騰訊 mysql資料庫主表設計

使用者資訊表(t_user_info)欄位名稱位元組數型別描述User_id4uint32使用者編號(主鍵)User_name20Char[20]名稱Msg_count4uint32釋出訊息數量,可以作為t_msg_info水平切分新表的auto_incrementFans_

Android -- 固定在ScrollView頂部的View類似於的評論列表的頂部

現在很多App都實現了這個功能,例如新浪微博評論頁面的評論、轉發、讚的數字可以固定在螢幕上方。我個人很喜歡這種設計,所以利用一點空餘時間簡單實現了一個類似的功能。 先來看一下上面這張圖的效果。 這個是新浪微博的一個頁面,整體佈局大致分了三塊:正文內容、轉發評論贊的

IOS 使用ShareSDK進行QQ分享失敗經驗

  該文章轉自  http://blog.csdn.net/iosbird/article/details/50420547    非常感謝提供解決思路 問題描述:在iOS9下,系統預設會攔截對http協議介面的訪問,因此無法獲取http協議介面的資料。對ShareS