(Un) Codsiga rasmiga ah ee Habr - HabrApp 2.0: helitaanka

Hal fiid ah oo caajis ah oo durba caajis badan, I, oo dhex caleenaya rasmi ah Habr Application, mar labaad ayaan faraheyga laabay, mid kasto oo aan shaqaynayn. Halkan, tusaale ahaan, wax faallo ah kama sheegi kartid, halkan waxaa laguu diiday inaad codeyso, iyo guud ahaan, maxaa qaababka aan loo arki karin shaashadda?

(Un) Codsiga rasmiga ah ee Habr - HabrApp 2.0: helitaanka
Waxaa la go'aamiyay: waxaan u baahanahay wax raaxo leh, raaxo leh, wax noo gaar ah. Ka warran codsigaaga Habr?
Aan ku siiyo dhawr sawir si aad u fahanto xaalada.

(Un) Codsiga rasmiga ah ee Habr - HabrApp 2.0: helitaankaWaxay u egtahay wax sidan oo kale ah waxaa - ee. habr.com codsiga

Liiska "aan ku habboonayn"

  • Ma qiimeyn kartid daabacaad qiimeynteedu ka duwan tahay 0
  • Mar walba suurtagal maaha in faallo la qoro
  • Doorashooyinku ma shaqeeyaan
  • Foomamka laguma arki karo mawduuc mugdi ah (madow ku madow)
  • Dhamaan bookmarks lama heli karo

Haa, abka lama cusboonaysiin tan iyo bishii Agoosto ee sannadkii hore, laakiin weli way xun tahay. Guud ahaan, waxay u baahan tahay in la hagaajiyo.

Qaybta koowaad. Raadinta gelitaanka

Weydiinta Google Degdega ah "habrahabr API" waxay sheegtay inay horeba u dhacday kayd on Github, aan la cusboonaysiin tan iyo November 21 2016, iyo tan, in yar, laba sano iyo bar.

Adiga oo iska indhatiraya xaqiiqada in kani yahay PHP, hoos u dhaadhac oo akhri:

Helitaanka aqoonsiga Codsiga

Ka faa'iidaysiga foomkan Habrahabr, waxaad u baahan tahay inaad si kooban u sharaxdo nuxurka codsiga cusub iyo ujeedada uu API ugu baahan yahay.

Ma jiro su'aal, haddii aad u baahan tahay inaad gasho, markaa waxaad u baahan tahay. Waxaan qornaa warqad (la soo gaabiyo):

Warqad

Waxaa jira rabitaan ah in la sameeyo codsi Habr ku salaysan PWA. Waxaa jira dhowr sababood oo tan ah. 

Midka ugu horreeya uguna cad: codsiga Android ma buuxinayo shuruudahayga shakhsi ahaaneed.

Midda labaad: ma jiraan ogaysiis ku filan oo ku saabsan dhammaan noocyada waxyaabaha sida caadiga ah ku yimaada iimaylka (faallo, tusaale ahaan).

Seddexaad: dheef-shiid kiimikaad (aragti ahaan) dadka / xarumaha i xiiseeya, anigoo tixgelinaya danahayga.

Jawaabtu, dabcan, ma ahayn mid aad u faraxsan, laakiin ugu yaraan daacad ah:

Nasiib darro, gelitaanka API-gayada hadda lama heli karo. Waxaan qorsheyneynaa inaan dib u bilowno bixinta gelitaanka ka dib markaan dhameyno dhammaystirka API, laakiin ma hayno taariikho sax ah weli, sababtoo ah Waxaan hadda ku mashquulsan nahay xallinta hawlaha kale ee mudnaanta leh.

"Hagaag, dhib malahan! Wax baan la iman doonaa!" - Waxaan isu sheegay oo bilaabay inaan eego.

Qaybta labaad. Qodista qoto dheer.

Iyada oo ku saleysan macquulnimada, haddii codsigu socdo, markaa waxay marin u leedahay API-ga, waxayna ku adagtahay codsiga. Aan falanqeyno.

Maadaama aan la tacaaleyno taraafikada, Wireshark waa doorashadayada. Ma aha xanuun la'aan, markii aan telefoonka ku xidhnay internetka iyada oo loo marayo kombuyuutar desktop ah, waxaan furnaa codsiga oo aan eegnaa codsiyada:

(Un) Codsiga rasmiga ah ee Habr - HabrApp 2.0: helitaanka
Way caddahay in aanay waxba caddayn

Haa, wax walba waa la siray, laakiin ma rabo in aan khalkhal ku sameeyo qarsoodiga. Markaa waxaad u baahan tahay inaad eegto gudaha codsiga laftiisa.

La kala saaray .apk, aan bilowno inaan eegno. Maxaa API kasta u baahan yahay? Sax, dhammaadka, meesha dhammaan codsiyada ay tagaan. Tani waxay u badan tahay http(-yada), aan isku dayno inaan helno "https://":

Faylka ku jira AuthLinkManager.smali waanu helaynaa

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

Kani waa koodka mashiinka farsamada gacanta ee Android (Dalvik VM), maaha mid aad loo fahmi karo aadanaha, laakiin weli xog badan. Saddexdan joogtada ah, oo lagu xukumayo nuxurkooda iyo magacooda, iyo sidoo kale kaydka GitHub, ayaa loo isticmaalaa in lagu codsado calaamado la isticmaalayo habka GET.

Aynu sii eegno. Faylka soo baxaya ee ku xiga raadinta waa NetworkModule.smali:

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

Oo halkan waa meesha aad ku raaci karto codsiyadaada!

Si macmiilka iskii wax u qoray uu si sax ah u shaqeeyo, hal shay ayaa u hadhay in la ogaado - client_id, kaas oo ay u badan tahay aqoonsi u gaar ah codsiga.

Si kastaba ha ahaatee, raadinta qoraalkan ee koodka isha ma horseedin in la helo macluumaadka la xiriira...

Laakiin si lama filaan ah mid ka mid ah faylalka ay indhahaygu qabteen khadadka xiisaha leh:

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

Tani, sida aad fahmi karto, waa galitaanka log. Laakin maxaa duubaya?

Qaybta saddexaad. Kuwani waa qoryihii!

Waxaan isticmaalnaa adb logcat si aad u aragto diiwaanka codsiga

(Un) Codsiga rasmiga ah ee Habr - HabrApp 2.0: helitaanka

Si lama filaan ah, logu wuxuu noqday mid ka sii faahfaahsan sidii la filayay.

Halkan kuma hayno waxa aan u baahanahay oo kaliya client_idLaakiin token user/application, iyo galaan ΠΈ furahaaga qoraal cad!

Qaar ka mid ah aragtiyaha shirqoolkaJoogitaanka kaliya ee login iyo erayga sirta ah ee ku jira diiwaanka wax dhib ah ma keenayso, sababtoo ah qoraalladan waxaa lagu akhriyi karaa oo keliya xuquuqda xididka ama xiriirka iyada oo loo marayo adb. Laakiin sababtoo ah xaqiiqda ah in dadka akhrinaya Habr ay jiraan horumariyayaal Android ah kuwaas oo laga yaabo in ay awood u yeeshaan cilladaha, tani waxay noqotaa dhibaato.

Xaaladdan oo kale, "lacag bilaash ah" garoonka diyaaradaha waxay keeni kartaa xatooyo xisaabeed, laakiin yaa u baahan?
Qoraaladan waxaan ka soo saari karnaa:

  • client_id ΠΈ apikeyloo baahan yahay in la galo API;
  • Oggolaanshaha isticmaale URL (wax qariib ah, laakiin ma jiraan wax ku jira kaydka habkan, laga yaabee inaan la bixin?)

Sidii ayay ku dhacday. Iyada oo ku saleysan cilmi-baaristan yar, shaqada ayaa horeyba u socota mashruuc yar - fulinta annaga noo gaar ah ee codsiga moobiilka. Waxaan waydiisanayaa kuwa raba inay caawiyaan inay qoraan fariin, iyo qof kasta oo kale - inay codeeyaan (maxaa yeelay waxaan rabaa inaan fahmo in qof u baahan yahay tan).

Qalbadda

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Ma isticmaashaa Habr mobaylka?

  • Haa, waan isticmaalaa, waan ku faraxsanahay

  • Haa, waan isticmaalaa, codsigu wuxuu keenaa dhib

  • Maya, waxaan ku isticmaalaa nooca shabakada taleefankayga

  • Maya, waxaan ka isticmaalaa Habr kambiyuutarkayga

357 isticmaale ayaa u codeeyay. 30 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment