(Un) kopo ea semmuso ea Habr - HabrApp 2.0: ho fumana phihlello

Mantsiboeeng a mang a nyahameng a bile a se a le monate, ke ile ka feta ofisiri Habr kopo, hang hape ke ile ka inama menoana ea ka, e 'ngoe bakeng sa tšobotsi e' ngoe le e 'ngoe e sa sebetseng. Mona, mohlala, u ke ke ua fana ka maikutlo, mona u haneloa tokelo ea ho vouta, 'me ka kakaretso, ke hobane'ng ha liforomo li sa bonahale skrineng?

(Un) kopo ea semmuso ea Habr - HabrApp 2.0: ho fumana phihlello
Ho ile ha etsoa qeto: re ne re hloka ho hong ho iketlileng, ho monate, ho hong hoo e leng tsa rōna. Ho thoe'ng ka kopo ea hau bakeng sa Habr?
E-re ke u fe li-screenshots tse 'maloa ho utloisisa boemo.

(Un) kopo ea semmuso ea Habr - HabrApp 2.0: ho fumana phihlelloE shebahala tjena e - ea. sesebelisoa sa habr.com

Lethathamo la "litšitiso"

  • U ke ke ua fana ka lintlha tsa khatiso eo lintlha tsa eona li fapaneng le 0
  • Ha se kamehla ho ka khonehang ho ngola maikutlo
  • Likhetho ha li sebetse
  • Liforomo ha li bonahale ka theme e lefifi (e ntšo ho e ntšo)
  • Ha se li-bookmark tse fumanehang

Ee, sesebelisoa ha se so ntlafatsoe ho tloha ka Phato selemong se fetileng, empa se ntse se le mpe. Ka kakaretso, e hloka ho lokisoa.

Karolo ea pele. E batla phihlello.

Potso e Potlakileng ea Google "habrahabr API" e re e se e siiloe ke nako polokelo ho Github, ha e so ntlafatsoe ho tloha ka nako eo November 21 2016'me sena, nakoana, lilemo tse peli le halofo.

Ho iphapanyetsa taba ea hore ena ke PHP, tsamaisetsa fatše 'me u bale:

Ho fumana ID ea Kopo

Ho nka monyetla foromo ena ho Habrahabr, o hloka ho hlalosa ka bokhutšoane mohloli oa ts'ebeliso e ncha le sepheo seo e se hlokang API.

Ha ho na potso, haeba u hloka ho fumana phihlello, ua e hloka. Re ngola lengolo (khutsufatsoa):

Ho ngola

Ho na le takatso ea ho etsa kopo ea Habr e thehiloeng ho PWA. Ho na le mabaka a 'maloa a sena. 

Ea pele le e hlakileng ka ho fetesisa: sesebelisoa sa Android ha se fihlelle litlhoko tsa ka.

Ea bobeli: ha ho na litsebiso tse lekaneng tsa matsoalloa mabapi le mefuta eohle ea lintho tseo hangata li tlang ka imeile (maikutlo, mohlala).

Ea boraro: tšilo ea motho ka mong (e le pono) ho batho/libaka tse nkhahlehang, ke ela hloko lithahasello tsa ka.

Karabo, ehlile, e ne e se monate haholo, empa bonyane e tšepahala:

Ka bomalimabe, phihlello ea API ea rona ha e fumanehe hajoale. Re rera ho qala hape ho fana ka phihlello kamora hore re qete ho phethela API, empa ha re na matsatsi a nepahetseng, hobane Hajwale re phathahane ho rarolla mesebetsi e meng ya bohlokwa.

“Ho lokile, ha ho bothata! Re tla bua ka ho hong!" - Ke ile ka ipolella 'me ka qala ho sheba.

Karolo ea bobeli. Liepollo tse tebileng.

Ho ipapisitsoe le mabaka, haeba ts'ebeliso e ntse e sebetsa, joale e na le phihlello ho API, 'me e kentsoe ka thata ts'ebetsong. A re hlahlobeng.

Kaha re sebetsana le sephethephethe, Wireshark ke khetho ea rona. Eseng ntle le bohloko bo itseng, ha re se re hokahantse mohala le Marang-rang ka komporo ea komporo, re bula sesebelisoa ebe re sheba likopo:

(Un) kopo ea semmuso ea Habr - HabrApp 2.0: ho fumana phihlello
Ho hlakile hore ha ho letho le hlakileng

E, ntho e 'ngoe le e' ngoe e patiloe, empa ha ke batle ho senya ka li-cryptography. Joale u lokela ho sheba ka hare ho kopo ka boeona.

Senyehile .apk, a re qaleng ho sheba. API efe kapa efe e hloka eng? Ho lokile, qetello, sebaka seo likopo tsohle li eang ho sona. Mohlomong ena ke http(s), ha re lekeng ho fumana "https://":

Ka faele AuthLinkManager.smali re fumana

.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"

Ena ke khoutu ea mochine oa sebele oa Android (Dalvik VM), ha e utloisisehe haholo ho batho, empa e ntse e ruta haholo. Lits'oants'o tsena tse tharo, ho ahlola ka litaba tsa tsona le lebitso la tsona, hammoho le polokelo ea GitHub, li sebelisoa ho kopa tokeneng ea phihlello ho sebelisa mokhoa. GET.

Ha re shebe ho feta. Faele e hlahang ka mor'a ho batla ke NetworkModule.smali:

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

'Me mona ke sebaka seo u ka eang ho sona ka likopo tsa hau!

Hore moreki ea ngotseng a sebetse hantle, ho na le ntho e le 'ngoe feela e setseng ho e tseba - client_id, eo mohlomong e leng sesupo se ikhethileng sa ts'ebeliso.

Leha ho le joalo, ho batla sengoloa sena ho khoutu ea mohloli ha hoa lebisa ho fumaneng lintlha tse nepahetseng ...

Empa ka tšohanyetso ho e 'ngoe ea lifaele, mahlo a ka a ile a tšoara mela e meng e khahlisang:

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

Sena, joalo ka ha u ka utloisisa, ke ho kena ha log. Empa ho rekota eng?

Karolo ea boraro. Likota ke tsena!

Re sebelisa adb logcat ho sheba lits'ebetso tsa lits'ebetso.

(Un) kopo ea semmuso ea Habr - HabrApp 2.0: ho fumana phihlello

Ho sa lebelloa, likutu li ile tsa fetoha tse qaqileng ho feta kamoo ho neng ho lebelletsoe.

Mona ha re na seo re se hlokang feela client_idempa letshwao mosebelisi/sebetsi, le kena и password ka mongolo o hlakileng!

Likhopolo tse ling tsa bolotsanaHo ba teng feela ha ho kena le password ka har'a li-log ha ho na kotsi, kaha li-log tsena li ka baloa feela ka litokelo tsa motso kapa ka khokahanyo. adb. Empa ka lebaka la hore har'a batho ba balang Habr ho na le bahlahisi ba Android bao e ka 'nang eaba ba na le bothata ba ho lokisa bothata, sena se fetoha bothata.

Tabeng ena, "tefiso ea mahala" boema-fofane e ka fella ka bosholu ba akhaonto, empa ke mang ea e hlokang?
Ho tsoa ho li-log tsena re ka ntša:

  • client_id и apikeye hlokahalang ho fihlella API;
  • URL ea tumello ea mosebelisi (e makatsang, empa ha ho na letho sebakeng sa polokelo mabapi le mokhoa ona, mohlomong ha o fanoe?)

Ho etsahetse jwalo. Ho ipapisitsoe le lipatlisiso tsena tse nyane, mosebetsi o se o ntse o tsoela pele morerong o monyane - ts'ebetsong ea rona ea sesebelisoa sa mehala. Ke kopa ba batlang ho thusa ho ngola molaetsa, le bohle - ho vouta (hobane ke batla ho utloisisa hore na ho na le motho ea hlokang sena).

Kea le leboha ka tlhokomelo ea hau!

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Na u sebelisa sesebelisoa sa mobile sa Habr?

  • E, kea e sebelisa, ke thabile ka eona

  • E, kea e sebelisa, kopo e baka tšitiso

  • Che, ke sebelisa mofuta oa tepo fonong ea ka

  • Che, ke sebelisa Habr ho tsoa komporong ea ka

Basebelisi ba 357 ba ile ba khetha. Basebelisi ba 30 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso