(Un) ntchito yovomerezeka ya Habr - HabrApp 2.0: kupeza mwayi

Usiku wina wotopetsa komanso wotopetsa, ine, ndikudutsa ovomerezeka Habr application, ndidapindanso zala zanga, chimodzi pa chilichonse chosagwira ntchito. Pano, mwachitsanzo, simungathe kuyankhapo, apa mukukanidwa ufulu wovota, ndipo kawirikawiri, nchifukwa ninji mafomuwa sakuwoneka pazenera?

(Un) ntchito yovomerezeka ya Habr - HabrApp 2.0: kupeza mwayi
Zinaganiziridwa: tinkafuna chinachake chomasuka, chosangalatsa, chinachake chathu. Nanga bwanji kufunsira kwanu kwa Habr?
Ndiroleni ndikupatseni zithunzi zingapo kuti mumvetsetse momwe zinthu zilili.

(Un) ntchito yovomerezeka ya Habr - HabrApp 2.0: kupeza mwayiZikuwoneka ngati izi izo -wa. habr.com ntchito

Mndandanda wa "zosokoneza"

  • Simungavotere chofalitsa chomwe mavoti ake ndi osiyana ndi 0
  • Sizingatheke nthawi zonse kulemba ndemanga
  • Zovota sizikugwira ntchito
  • Mafomula sawoneka mumutu wakuda (wakuda pakuda)
  • Sikuti ma bookmark onse alipo

Inde, pulogalamuyi sinasinthidwe kuyambira mu Ogasiti chaka chatha, koma ndi yoyipa. Nthawi zambiri, imayenera kukonzedwa.

Gawo loyamba. Kuyang'ana mwayi.

Funso lachangu la Google "habrahabr API" akuti ndi zakale ndithu posungira pa Github, osasinthidwa kuyambira pamenepo November 21 2016, ndipo izi, kwa mphindi, zaka ziwiri ndi theka.

Kunyalanyaza mfundo yakuti iyi ndi PHP, pendani pansi ndikuwerenga:

Kupeza ID ya Application

Kupezerapo mwayi mawonekedwe awa pa Habrahabr, muyenera kufotokoza mwachidule tanthauzo la pulogalamu yatsopanoyi komanso cholinga chomwe chimafunikira API.

Palibe funso, ngati mukufuna kupeza mwayi, ndiye kuti mukufunika. Timalemba kalata (yofupikitsidwa):

Kalata

Pali chikhumbo chopanga fomu yofunsira Habr kutengera PWA. Pali zifukwa zingapo za izi. 

Choyamba komanso chodziwikiratu: kugwiritsa ntchito Android sikukwaniritsa zomwe ndikufuna.

Chachiwiri: palibe zidziwitso zakubadwa zokwanira za mitundu yonse ya zinthu zomwe nthawi zambiri zimabwera ndi imelo (ndemanga, mwachitsanzo).

Chachitatu: kugaya zaumwini (monga momwe amawonera) pa anthu / malo omwe amandisangalatsa, poganizira zokonda zanga.

Yankho, ndithudi, silinali losangalatsa kwambiri, koma osachepera moona mtima:

Tsoka ilo, kupeza API yathu sikukupezeka pano. Tikukonzekera kuyambiranso kupereka mwayi tikamaliza kumaliza API, koma tilibe masiku enieni, chifukwa Panopa tili otanganidwa kuthetsa ntchito zina zofunika kwambiri.

β€œChabwino, palibe vuto! Tipangapo kanthu!" - Ndinadziuza ndekha ndikuyamba kuyang'ana.

Gawo lachiwiri. Zofukula mozama.

Kutengera malingaliro, ngati pulogalamuyo ikugwira ntchito, ndiye kuti ili ndi mwayi wogwiritsa ntchito API, ndipo imalumikizidwa ndi pulogalamuyo. Tiyeni tipende.

Popeza tikulimbana ndi magalimoto, Wireshark ndiye chisankho chathu. Osati popanda zowawa zina, titalumikiza foni pa intaneti kudzera pa kompyuta, timatsegula pulogalamuyi ndikuyang'ana zopempha:

(Un) ntchito yovomerezeka ya Habr - HabrApp 2.0: kupeza mwayi
Zikuwonekeratu kuti palibe chomveka

Inde, zonse zimasungidwa, koma sindikufuna kusokoneza ndi cryptography. Ndiye muyenera kuyang'ana mkati ntchito palokha.

Zowonongeka .apk, tiyeni tiyambe kuyang'ana. Kodi API iliyonse imafuna chiyani? Chabwino, mapeto, malo amene zopempha zonse zimapita. Izi mwina ndi ma http (ma), tiyeni tiyese kupeza "https://":

Mu fayilo AuthLinkManager.smali tikupeza

.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 ndiye code yamakina apakompyuta a Android (Dalvik VM), osamveka bwino kwa anthu, komabe ndi chidziwitso. Zosintha zitatuzi, kutengera zomwe zili ndi dzina, komanso malo osungiramo GitHub, zimagwiritsidwa ntchito kupempha chizindikiro chofikira pogwiritsa ntchito njirayo. GET.

Tiyeni tionenso mopitirira. Fayilo yomwe ikubwera yotsatira pakufufuza ndi NetworkModule.smali:

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

Ndipo apa pali malo oti mupite ndi zopempha zanu!

Kuti kasitomala wodzilemba azigwira ntchito moyenera, patsala chinthu chimodzi chokha - client_id, chomwe chingakhale chizindikiritso chapadera cha pulogalamuyo.

Komabe, kufufuza mawuwa mu code source sikunatsogolere kupeza zofunikira ...

Koma mwadzidzidzi mu imodzi mwamafayilowo maso anga adagwira mizere yosangalatsa:

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

Izi, monga mukumvetsetsa, ndi kulowa kwa chipika. Koma kujambula chiyani?

Gawo lachitatu. Izi ndi zipika!

Timagwiritsa ntchito adb logcat kuti muwone zolemba zamapulogalamu.

(Un) ntchito yovomerezeka ya Habr - HabrApp 2.0: kupeza mwayi

Mosayembekezeka, zipikazo zinakhala zatsatanetsatane kuposa momwe amayembekezera.

Pano tilibe zomwe tikufuna zokha client_idkoma chizindikiro wogwiritsa / ntchito, ndi lolowani ΠΈ chinsinsi m'mawu osavuta!

Malingaliro ena achiwembuKukhalapo chabe kwa malowedwe ndi mawu achinsinsi mu zipika sikuvulaza chilichonse, chifukwa mitengoyi imatha kuwerengedwa ndi maufulu a mizu kapena kulumikizana kudzera. adb. Koma chifukwa chakuti pakati pa anthu omwe akuwerenga Habr pali opanga Android omwe atha kukhala ndi vuto, izi zimakhala zovuta.

Pachifukwa ichi, "kulipira kwaulere" pabwalo la ndege kungayambitse kuba akaunti, koma ndani akufunikira?
Kuchokera ku zipika izi tikhoza kuchotsa:

  • client_id ΠΈ apikeychofunika kuti mupeze API;
  • Ulalo wololeza ogwiritsa ntchito (zachilendo, koma palibe chomwe chili m'malo osungiramo njira iyi, mwina sichinaperekedwe?)

Umo ndi momwe zinachitikira. Kutengera ndi kafufuzidwe kakang'ono aka, ntchito yayamba kale ntchito yaying'ono - kukhazikitsa kwathu pulogalamu yam'manja. Ndikupempha omwe akufuna kuthandizira kulemba uthenga, ndi wina aliyense - kuvota (chifukwa ndikufuna kumvetsetsa ngati wina akufunikira izi).

Zikomo chifukwa cha chidwi chanu!

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Kodi mumagwiritsa ntchito pulogalamu yam'manja ya Habr?

  • Inde, ndimagwiritsa ntchito, ndine wokondwa nazo

  • Inde, ndimagwiritsa ntchito, kugwiritsa ntchito kumayambitsa zovuta

  • Ayi, ndimagwiritsa ntchito mtundu wa intaneti pafoni yanga

  • Ayi, ndimagwiritsa ntchito Habr kuchokera pa kompyuta yanga

Ogwiritsa 357 adavota. Ogwiritsa ntchito 30 adakana.

Source: www.habr.com

Kuwonjezera ndemanga