Applikazzjoni Habr (mhux) uffiċjali - HabrApp 2.0: jiksbu aċċess

Filgħaxija waħda languid u diġà pjuttost boring, I, leafing permezz uffiċjali Applikazzjoni Habr, għal darb'oħra I bent swaba tiegħi, wieħed għal kull karatteristika li ma taħdem. Hawnhekk, pereżempju, ma tistax tikkummenta, hawn inti mċaħħad mid-dritt tal-vot, u b'mod ġenerali, għaliex il-formuli mhumiex viżibbli fuq l-iskrin?

Applikazzjoni Habr (mhux) uffiċjali - HabrApp 2.0: jiksbu aċċess
Ġie deċiż: kellna bżonn xi ħaġa komda, pjaċevoli, xi ħaġa tagħna stess. Xi ngħidu dwar l-applikazzjoni tiegħek stess għal Habr?
Ħa nagħtikom ftit screenshots biex tifhem is-sitwazzjoni.

Applikazzjoni Habr (mhux) uffiċjali - HabrApp 2.0: jiksbu aċċessJidher xi ħaġa bħal din dan - ta'. applikazzjoni habr.com

Lista ta' "inkonvenjenzi"

  • Ma tistax tikklassifika pubblikazzjoni li l-klassifikazzjoni tagħha hija differenti minn 0
  • Mhux dejjem possibbli li tikteb kumment
  • L-istħarriġ ma jaħdimx
  • Il-formuli mhumiex viżibbli f'tema skura (iswed fuq iswed)
  • Mhux il-bookmarks kollha huma disponibbli

Iva, l-app ma ġietx aġġornata minn Awwissu tas-sena l-oħra, iżda għadha ħażina. B'mod ġenerali, jeħtieġ li jiġi ffissat.

L-ewwel parti. Tfittex aċċess.

Mistoqsija ta' Google malajr "habrahabr API" jgħid li huwa diġà pjuttost skadut repożitorju fuq Github, mhux aġġornat minn dakinhar Novembru 21 2016, u dan, għal mument, sentejn u nofs.

Injora l-fatt li dan huwa PHP, iskrollja 'l isfel u aqra:

Ikseb l-ID tal-Applikazzjoni

Jieħdu vantaġġ din il-formola fuq Habrahabr, trid tiddeskrivi fil-qosor l-essenza tal-applikazzjoni l-ġdida u l-iskop li għalih teħtieġ API.

M'hemm l-ebda mistoqsija, jekk għandek bżonn tikseb aċċess, allura għandek bżonnha. Aħna niktbu ittra (imqassar):

Ittra

Hemm xewqa li ssir applikazzjoni għal Habr ibbażata fuq PWA. Hemm diversi raġunijiet għal dan. 

L-ewwel u l-aktar ovvju: l-applikazzjoni Android ma tissodisfax ir-rekwiżiti personali tiegħi.

It-tieni: m'hemmx biżżejjed notifiki indiġeni dwar kull xorta ta 'affarijiet li normalment jiġu bl-email (kummenti, pereżempju).

It-tielet: diġesti personali (bħala perspettiva) fuq nies/hubs li jinteressawni, b'kont meħud tal-interessi tiegħi.

It-tweġiba, ovvjament, ma kinitx pjaċevoli ħafna, iżda għall-inqas onesta:

Sfortunatament, l-aċċess għall-API tagħna bħalissa mhuwiex disponibbli. Qed nippjanaw li nibqgħu nipprovdu l-aċċess wara li nispiċċaw nifinalizzaw l-API, iżda għad m'għandna l-ebda data eżatta, għaliex Bħalissa ninsabu okkupati nsolvu kompiti prijoritarji oħra.

“Tajjeb, l-ebda problema! Se noħorġu b’xi ħaġa!” - għidt lili nnifsi u bdejt infittex.

It-tieni parti. Skavi fil-fond.

Ibbażat fuq il-loġika, jekk l-applikazzjoni tkun qed taħdem, allura għandha aċċess għall-API, u hija mdaħħla b'mod iebes fl-applikazzjoni. Ejja nanalizzaw.

Peress li qed nittrattaw mat-traffiku, Wireshark hija l-għażla tagħna. Mhux mingħajr xi uġigħ, wara li kkonnettja t-telefon ma 'l-Internet permezz ta' kompjuter desktop, aħna niftħu l-applikazzjoni u nħarsu lejn it-talbiet:

Applikazzjoni Habr (mhux) uffiċjali - HabrApp 2.0: jiksbu aċċess
Huwa ċar li xejn mhu ċar

Iva, kollox huwa encrypted, imma ma rridx niddejjaq mal-kriptografija. Imbagħad għandek bżonn tħares ġewwa l-applikazzjoni nnifisha.

Dekompilat .apk, ejja nibdew infittxu. X'għandu bżonn xi API? Dritt, endpoint, il-post fejn imorru t-talbiet kollha. Dan huwa probabbilment http(s), ejja nippruvaw insibu "https://":

Fil-fajl AuthLinkManager.smali insibu

.field OAUTH:Ljava/lang/String; = "https://habrahabr.ru/auth/o/%s/"
.field OAUTH_PARAMS:Ljava/lang/String; = "?client_id=%s&response_type=token&redirect_uri=%s"
.field OAUTH_REDIRECT_URL:Ljava/lang/String; = "http://cleverpumpkin.ru"

Dan huwa l-kodiċi għall-magna virtwali Android (Dalvik VM), ma tantx jinftiehem mill-bnedmin, iżda xorta pjuttost informattiv. Dawn it-tliet kostanti, meta wieħed jiġġudika mill-kontenut u l-isem tagħhom, kif ukoll ir-repożitorju GitHub, jintużaw biex jitolbu token ta’ aċċess bl-użu tal-metodu GET.

Ejja nħarsu aktar. Il-fajl li jmiss fit-tfittxija huwa NetworkModule.smali:

const-string v0, "https://habr.com/api/v1/"

U hawn huwa l-post fejn tmur bit-talbiet tiegħek!

Biex il-klijent miktub minnu nnifsu jaħdem sew, fadal biss ħaġa waħda biex insemmu - client_id, li x'aktarx huwa identifikatur uniku għall-applikazzjoni.

Madankollu, it-tfittxija għal dan it-test fil-kodiċi tas-sors ma wasslitx biex tinstab informazzjoni rilevanti...

Imma f'daqqa waħda f'wieħed mill-fajls għajnejja qabdu xi linji interessanti:

const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

Din, kif tista' tifhem, hija dħul ta' log. Imma jirreġistra xiex?

It-tielet parti. Dawn huma z-zkuk!

Aħna nużaw adb logcat biex tara logs tal-applikazzjoni.

Applikazzjoni Habr (mhux) uffiċjali - HabrApp 2.0: jiksbu aċċess

B'mod mhux mistenni, iz-zkuk irriżultaw li kienu saħansitra aktar dettaljati milli mistenni.

Hawnhekk għandna mhux biss dak li għandna bżonn client_idImma token utent/applikazzjoni, u login и password f'test sempliċi!

Xi teoriji tal-konfoffaIs-sempliċi preżenza ta' login u password fil-logs ma tagħmel ħsara lil xejn, peress li dawn ir-logs jistgħu jinqraw biss jew bi drittijiet tal-għeruq jew b'konnessjoni permezz adb. Iżda minħabba l-fatt li fost in-nies li jaqraw Habr hemm żviluppaturi ta 'Android li jista' jkollhom id-debugging attivat, dan isir problema.

F'dan il-każ, "iċċarġjar b'xejn" fl-ajruport jista 'jirriżulta f'serq ta' kont, imma min għandu bżonnha?
Minn dawn ir-zkuk nistgħu niġbdu:

  • client_id и apikeymeħtieġa għall-aċċess api;
  • URL tal-awtorizzazzjoni tal-utent (stramba, iżda m'hemm xejn fir-repożitorju dwar dan il-metodu, forsi mhux ipprovdut?)

Hekk ġara. Ibbażat fuq din ir-riċerka ċkejkna, diġà għaddej xogħol fuq proġett żgħir – l-implimentazzjoni tagħna stess ta’ applikazzjoni mobbli. Nitlob lil min irid jgħin biex jiktbu messaġġ, u lil kulħadd – jivvota (għax irrid nifhem jekk xi ħadd għandu bżonn dan).

Grazzi tal-attenzjoni tiegħek!

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Tuża l-applikazzjoni tal-mowbajl Habr?

  • Iva, nużaha, jien kuntent biha

  • Iva, nużaha, l-applikazzjoni tikkawża inkonvenjent

  • Le, nuża l-verżjoni tal-web fuq it-telefon tiegħi

  • Le, nuża Habr mill-kompjuter tiegħi

Ivvutaw 357 utent. 30 utenti astjenew.

Sors: www.habr.com

Żid kumment