業餘時間寫了一個第三方微博(不使用官方SDK)

2021-01-17 Android訂閱

作者: 聽任蔓草堙路

地址:http://www.jianshu.com/p/531efdf5cdc5

GitHub地址:https://github.com/Werb/Werb

前段時間,想要寫一個練手的項目,所以決定開發一個第三方微博 App

分析 Sina WeiboSDK源碼,發現官方Api請求在實現、代碼風格上存在很多弊端

本項目中所有的請求,都是利用 RxJava + Retrofit 重新封裝請求,並實現無網緩存

採用 MVP 設計模式,充分解耦,在代碼閱讀、後期維護上有很好的體驗

由於新浪暫停對第三方微博的審核,所以未能通過應用審核,獲取更多權限,來完成後續開發,當然也是不能直接運行的

所以想要運行項目的同學,可以替換成自己的新浪APP key,或者聯繫我給你添加測試帳號

分享的目的是,我覺得項目中功能還是很不錯的,希望可以給予大家一些參考

GitHub 項目地址 : https://github.com/Werb/Werb

實現微博主頁信息流瀏覽、可以在每條微博中,實現點讚,評論,轉發功能

使用自定義 View 實現九宮格圖片顯示,同時點擊瀏覽圖片,支持左右滑動

支持下拉刷新,上滑加載,快速回到頂端

閃屏界面做了類似於 Twitter 閃屏界面的動畫處理

其中對微博正文的文字處理,我覺得是比較有意思的地方,通過正則表達式匹配出 @ ,# ,url,做不同的顏色及點擊處理



在主頁點擊微博,可以進入詳情界面

實現了對該條微博的轉發,評論功能,同時還可以對該微博下的評論進行回復,轉發操作

利用 CoordinatorLayout 實現父布局與子布局嵌套滑動

由於微博接口限制,這裡只能獲取微博下的評論數據,轉發和點讚是獲取不到的,但在代碼編寫上三者幾乎相同,只是請求的接口不同



顯示用戶的粉絲數,關注數,微博數

查看個人相冊,個人收藏,好友列表(包括粉絲,關注,互粉)

由於微博接口限制,只能獲取部分數據,忍不住吐槽一下,真是太坑了...

相冊是通過個人界面中獲取的微博信息,提取出圖片參數,自己做處理的,新浪並沒有提供獲取相冊列表的接口







這個項目我會繼續做的,但由於接口的限制,進度應該會很緩慢,有好想法的同學可以聯繫我,我們來一起做

想學習 MVP + RxJava + Retrofit 的同學,可以看一下我的這個項目

實踐!業餘時間做的一款閱讀類App (MVP + RxJava + Retrofit)(http://www.jianshu.com/p/be0f4a4863ae)

Github 地址在這裡 : https://github.com/Werb/GankWithZhihu

單純的使用 MVP + RxJava + Retrofit 構建一個項目,沒有其他複雜的功能,很適合學習

歡迎 Star 和 Fork

文章中說過啦,因為新浪沒有通過審核,所以想要登陸需要授權,有兩種方法:1.去新浪申請應用,換成你自己的新浪App key,這種事比較推薦的,把申請好的app key,替換info/Constans.java 中的app key 。2. 我來給你添加測試帳號,但是因為新浪規定,未審核的應用,至多只能添加15個測試帳號。寫這篇文章的原因,主要是我覺得其中一些功能的代碼編寫,還是具有一定的學習意義的,比如信息流界面加載,九宮格圖片,自定義emoji,整體的MVP + RxJava + REtrofit 框架,嵌套布局的實現。加油~ 



Android訂閱是探討Android開發的公眾號,分享最有價值的Android乾貨文章

歡迎關注我們,一起討論技術,掃描和長按下方的二維碼可快速關注我們 


相關焦點

  • 特斯拉行駛中天窗飛了,特斯拉官方:是第三方更換與我無關
    好在此時道路上車輛不多,天窗沒有砸到任何車輛。視頻發布幾小時後特斯拉官方通過微博回應稱:「我們已第一時間和該車車主取得聯繫並在幫助車主儘快解決問題。經初步調查,該車輛曾在第三方授權鈑噴中心進行過車頂玻璃的更換,特斯拉方面正在對事件發生的原因做進一步調查。」
  • 特斯拉天窗又「飛」了,官方回應疑似「甩鍋」第三方
    特斯拉天窗又「飛」了,官方回應疑似「甩鍋」第三方 2020-11-24 19:49 來源:澎湃新聞·澎湃號·湃客
  • oppo r9s 解bl鎖,刷入第三方recovery
    以下是線刷第三方rec,然後再用第三方的rec工具卡刷rom,root,xposed,面具等。 流程: 1. 手機解除bootloader鎖。 2. 開啟fastboot模式刷入第三方recovery。 3.
  • 其實是第三方軟體還沒有適配,可以放心購買
    大家好,我是Mikan,一個不客觀但理性的小果粉前段時間蘋果不是發布了新款的iPad8和Air4了嗎?Mikan也和很多博主一樣最最推薦的是iPad8代,認為很適合學生使用,性價比超高。一直到第三方軟體官方微博回復網友疑問,此事才算是勉強「告一段落」了隨後愛思助手更新了資料庫,iPad8的電池檢測恢復正常關於這種事情Mikan真的想說兩句蘋果的系統,尤其是iOS的權限是相當嚴格的,只會讓軟體讀取和普通用戶一樣可以讀取的信息
  • 特斯拉天窗脫落「甩鍋」第三方 網友:萬年推脫理由
    ,「我們已第一時間和該車車主取得聯繫並在幫助車主儘快解決問題。經初步調查,該車輛曾在第三方授權鈑噴中心進行過車頂玻璃的更換,特斯拉方面正在對事件發生的原因做進一步調查。」「為什麼要強調第三方授權鈑噴中心?」
  • iPhone禁止第三方電池!庫克厚道不厚道?
    據外媒報導,iPhone XR和XS系列更換了第三方電池後,電池健康中會顯示「無法驗證iPhone是正品Apple電池」,同時,iPhone的電池健康信息也不可用,最大容量無法顯示。對此,蘋果公司官方回應稱此舉是為了保護用戶,防止用戶使用劣質電池,導致安全隱患。
  • 官方回應後網友卻不幹了
    近日,一個「特斯拉行駛中天窗突然飛起」的視頻引發關注。網傳視頻顯示,一輛特斯拉Model S在高速行駛時,玻璃天窗突然脫落順勢飛起,在空中翻滾數圈落下,險些砸到後車,整個過程剛好被後方行駛車輛的行車記錄儀拍下。
  • LOL手遊丨因使用第三方軟體被封號,但玩家卻表示只用過加速器!
    因使用加速器被封號?近期,不斷有玩家開始反饋LOL手遊中存在破壞遊戲競技環境的情況,其中包括使用第三方軟體和遊戲對局不文明現象等惡劣行為。對此,LOL手遊設計師表示將加強優化相關功能。因為公測地區的限制,國服玩家更多是通過加速器的方式進行體驗。
  • api 微博數據專題及常見問題 - CSDN
    接口使用方法的一個小demo了。網上有很多安裝mongodb教程我就不寫了Windows下mongodb的安裝Linux下mongodb的安裝2.2 新浪開發者帳號的註冊方法由於用戶的口令存儲在新浪微博,因此,認證用戶的過程只能由新浪微博完成,但新浪微博如何與您的網站通信並告知您用戶是否登錄成功呢?這個過程稱之為第三方登錄,OAuth是一個標準的第三方登錄協議,藉助OAuth,您的網站就可以安全地接入來自新浪微博登錄成功的用戶。 OAuth目前主要有1.0和2.0兩個版本,2.0版對1.0版做了大量簡化,API也更簡單。
  • 蘋果第三方電池排名品牌推薦的是?
    蘋果電池屬於消耗品,雖說在蘋果7以後原裝的最佳,但是由於蘋果不出售原裝電池,在電池耗損大於50%後,就可以考慮更換成第三方電池了。接下來按排名推薦三個第三方電池品牌。1、德賽這一家鋰電池生產廠商是蘋果電池國內的代工廠,工廠位於惠州。
  • 蘋果確認"封殺"iPhone第三方電池
    從被曝出蘋果將在屏蔽第三方iPhone電池傳聞開始,到知名拆解機構iFixit經過實測後發現,iPhone XS、iPhone XS Max和iPhone XR更換第三方電池後「電池健康」功能會失效。再到現在,蘋果公司也十分大方的承認了其會屏蔽第三方iPhone電池。
  • 蘋果換原裝電池好還是換第三方大容量電池好?第三方電池安全嗎
    正常情況下,蘋果手機使用一年左右就要更換電池。 蘋果經歷了「降頻門」事件後,蘋果開始檢測電池容量。更換了第三方電池後,系統依舊可以檢測到第三方電池的性能。在電池容量上,第三方大容量電池有優勢。更換了大容量電池後,充電時間變長了。
  • iphone電池不夠用想換,想換第三方的,那麼哪個品牌好呢?
    但在使用1年時間左右,它的電池續航額能力就會逐漸下降,很多人為了保障舒適的體驗就會選擇更換電池。而這個時候就會根據喜好選擇原裝還是第三方電池來替代。但我們都知道想要更換蘋果電池除非你去蘋果售後,不然你是換不到真正的原機電池的。
  • 科幻《三體》是利用上班時間偷寫的,劉慈欣:我好像佔了單位便宜
    不會寫小說的IT男不是好工程師,是網友為劉慈欣近30年火電廠工作經歷打上的標籤。有「劉電工」綽號的作家劉慈欣可謂是名滿天下。近日,有網友翻出了劉慈欣早些時候的採訪視頻,按照他當時的原話,曾經電力系統堅守崗位的固定上班制度,是他保證按時創作小說的時間保證,其相當大一部分寫作時間都是在這個崗位上完成的。
  • 特斯拉天窗被「吹飛」,究其原因又是「第三方」的鍋?
    根據車主當時的回憶:「剛開始聽到了很多的風聲,以為是窗戶沒關閉造成,所以沒有理會,但是在過了近半分鐘左右的時間,整個車頂就隨風而去了。」而車主在萬般無奈的情況下不得不將這款才買的」敞篷版「Model Y開到經銷商所在地。
  • 蘋果確認封殺iPhone第三方電池:是為了保護用戶安全
    集微網消息,蘋果自從將iPhone數據線啟用MFi加密認證後,讓山寨數據線市場幾十億紅利近乎消失;如今,蘋果再次將這種加密設置用在了iPhone的電池上,一旦iPhone用戶更換第三方電池後,部分型號的iPhone電池健康功能將難以正常使用。
  • 【親測】安卓7.0谷歌官方底包線刷+刷入第三方recovery+解密+...
    nexus中文網熱心網友@losttinder的親測教程,傾情奉獻^_^一、安卓7.0谷歌官方底包線刷
  • 《絕地求生》:藍洞官方微博發布夜間模式宣傳片,你怎麼看?
    據報導,因雪地地圖歧視黑人的問題現在已經得到了有關部門的高度重視,為平復黑人兄弟在近期遭受到的不公平待遇,藍洞特推出黑夜模式加強黑人玩家的體驗。就在昨天下午四點的時候,絕地求生藍洞官方微博發布了一個小視頻。這邊視頻全文只有一個字,那就是「夜」,根據這個短視頻,我們可以推斷,藍洞或許要上線夜間模式了。像之前發的風雪指大場景雪地地圖,現在的夜指新天氣系統黑夜?
  • 蘋果封禁iPhone第三方電池,為了用戶安全,也為了賺更多的錢!
    不過,令人意想不到的是,「電池健康」也催動了大量用戶更換新電池的需求動力,原因很簡單,看到自己花費近萬元買來的iPhone其電池容量逐漸變小,愈發感到不值,最後終於在強迫症的促使下產生了更換電池的想法。這樣一來,蘋果又多了一門很賺錢的生意經。