(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?
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.
Waxay 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.
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:
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
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:
Waxaan isticmaalnaa adb logcat si aad u aragto diiwaanka codsiga
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.