(Un) yepamutemo Habr application - HabrApp 2.0: kuwana mukana

Humwe husiku hwakaneta uye hwatove hunofinha, ini, ndichifamba mukuru Habr application, zvakare ndakakotamisa zvigunwe zvangu, imwe yega yega isiri-kushanda chimiro. Pano, semuenzaniso, haugone kutaura, pano iwe wakanyimwa kodzero yekuvhota, uye kazhinji, nei mafomula asingaonekwe pachiratidziri?

(Un) yepamutemo Habr application - HabrApp 2.0: kuwana mukana
Zvakasarudzwa: taida chimwe chinhu chakanaka, chinofadza, chimwe chinhu chedu pachedu. Zvakadini nekunyorera kwako pachako kwaHabr?
Rega ndikupe mascreenshots mashoma kuti unzwisise mamiriro acho.

(Un) yepamutemo Habr application - HabrApp 2.0: kuwana mukanaZvinotaridzika seizvi izvozvo - ye. habr.com application

Rondedzero ye "zvinonetsa"

  • Iwe haugone kutara chinyorwa chine mwero wakasiyana ne0
  • Hazviiti nguva dzose kunyora mhinduro
  • Sarudzo hadzishande
  • Mafomula haaonekwe mune rima dingindira (dema pane dema)
  • Haasi ese mabookmark aripo

Ehe, iyo app haina kuvandudzwa kubva Nyamavhuvhu gore rapfuura, asi ichiri yakaipa. Kazhinji, inoda kugadziriswa.

Chikamu chekutanga. Kutsvaga kuwana.

Quick Google Query "habrahabr API" inoti yatova yechinyakare repository paGithub, isina kuvandudzwa kubvira November 21 2016uye izvi, kwechinguva, makore maviri nehafu.

Usingaremekedzi chokwadi chekuti iyi iPHP, pfugama pasi uye uverenge:

Kutora ID yekushandisa

Kutora mukana fomu iri paHabrahabr, unofanirwa kutsanangura muchidimbu kukosha kwechishandiso chitsva uye chinangwa chainoda API.

Hapana mubvunzo, kana iwe uchida kuwana mukana, saka unoida. Tinonyora tsamba (yakapfupikiswa):

Tsamba

Pane chishuwo chekuita kunyorera Habr zvichibva paPWA. Pane zvikonzero zvakawanda zveizvi. 

Yekutanga uye yakanyanya kujeka: iyo Android application haina kuzadzisa zvandinoda.

Chechipiri: hapana zvakakwana zviziviso zvekuzvarwa nezve marudzi ese ezvinhu anowanzo kuuya neemail (macomments, semuenzaniso).

Chechitatu: kugaya kwega (semaonero) kune vanhu / hubs dzinondifarira, ndichifunga zvandinofarira.

Mhinduro, hongu, yanga isinganakidze, asi yakatendeseka:

Nehurombo, kuwana API yedu haisi kuwanikwa parizvino. Isu tinoronga kutangazve kupa mukana kana tapedza kupedzisa API, asi isu hatisati tave nemazuva chaiwo, nekuti. Parizvino tiri mubishi kugadzirisa mamwe mabasa akakosha.

β€œZvakanaka, hapana dambudziko! Tichauya nechimwe chinhu!" - Ndakazviudza uye ndakatanga kutarisa.

Chikamu chechipiri. Kuchera kwakadzama.

Kubva pane zvine musoro, kana application iri kushanda, saka inokwanisa kuwana iyo API, uye yakaomeswa mukushandisa. Ngationgororei.

Sezvo isu tiri kubata traffic, Wireshark ndiyo yedu sarudzo. Kwete pasina mamwe marwadzo, tabatanidza foni kuInternet kuburikidza nekombuta yedesktop, tinovhura application uye tinotarisa zvikumbiro:

(Un) yepamutemo Habr application - HabrApp 2.0: kuwana mukana
Zviri pachena kuti hapana chakajeka

Ehe, zvese zvakavharirwa, asi ini handidi kukanganisa ne cryptography. Ipapo iwe unofanirwa kutarisa mukati meiyo application pachayo.

Decompiled .apk, ngatitangei kutarisa. Chii chinoda chero API? Rudyi, endpoint, nzvimbo inoenda zvikumbiro zvese. Izvi zvichida ma http(s), ngatiedzei kutsvaga "https://":

Mufaira AuthLinkManager.smali tinowana

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

Iyi ndiyo kodhi yeiyo Android virtual muchina (Dalvik VM), isinganyanyi kunzwisiswa nevanhu, asi ichiri kunyatsodzidzisa. Aya matatu anogara aripo, achitonga nezvavo uye zita, pamwe neGitHub repository, anoshandiswa kukumbira chiratidzo chekuwana uchishandisa nzira. GET.

Ngatitarisei mberi. Iyo faira inouya inotevera mukutsvaga ndeye NetworkModule.smali:

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

Uye heino nzvimbo yekuenda nezvikumbiro zvako!

Kuti mutengi anozvinyora ashande nemazvo, pane chinhu chimwe chete chasara kuti uone - client_id, inova ingangove yakasarudzika chiziviso chekushandisa.

Nekudaro, kutsvaga chinyorwa ichi mune kodhi kodhi hakuna kuita kuti uwane ruzivo rwakakodzera...

Asi kamwe kamwe mune rimwe remafaira maziso angu akabata mimwe mitsetse inofadza:

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

Izvi, sezvaunogona kunzwisisa, inopinda regi. Asi kurekodha chii?

Chikamu chetatu. Aya ndiwo matanda!

Isu tinoshandisa adb logcat kuona application logs.

(Un) yepamutemo Habr application - HabrApp 2.0: kuwana mukana

Zvisingatarisirwi, matanda acho akazova akadzama kupfuura zvaitarisirwa.

Pano hatina chete zvatinoda client_idasi chiratidzo mushandisi/application, uye login ΠΈ password mumashoko akajeka!

Dzimwe dzidziso dzekuranganaIko kungovepo kwelogin uye password mumatanda hakukuvadze chero chinhu, sezvo matanda aya anogona kungoverengwa nechero kodzero dzemidzi kana kubatana kuburikidza. adb. Asi nekuda kwekuti pakati pevanhu vanoverenga Habr pane vagadziri veAroid vanogona kunge vaine debugging yakagoneswa, izvi zvinova dambudziko.

Muchiitiko ichi, "kuchaja mahara" panhandare yendege kunogona kukonzera kuba account, asi ndiani anoida?
Kubva mumatanda aya tinogona kutora:

  • client_id ΠΈ apikeyinodiwa kuwana API;
  • Mvumo yemushandisi URL (zvinoshamisa, asi hapana chinhu mune repository nezve nzira iyi, pamwe haina kupihwa?)

Ndizvo zvakaitika. Zvichienderana nekutsvagisa kudiki uku, basa riri kutoenderera mberi pane purojekiti diki - isu pachedu kuita nharembozha. Ndinokumbira avo vanoda kubatsira kunyora meseji, uye nevamwe vese - kuvhota (nokuti ndinoda kunzwisisa kana paine anoda izvi).

Бпасибо за вниманиС!

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Iwe unoshandisa iyo Habr mobile application?

  • Hongu, ndinoshandisa, ndinofara nazvo

  • Ehe, ini ndinoishandisa, iyo application inokonzeresa kusagadzikana

  • Kwete, ini ndinoshandisa iyo webhu vhezheni pafoni yangu

  • Kwete, ini ndinoshandisa Habr kubva pakombuta yangu

357 vashandisi vakavhota. 30 vashandisi vakaramba.

Source: www.habr.com

Voeg