(Un)isicelo seHabr esisemthethweni - HabrApp 2.0: ukufumana ukufikelela

Ngobunye ubusuku obutyhafileyo nobusele bukruqukile, ndadlula igosa Ukusetyenziswa kweHabr, ndaphinda ndagoba iminwe yam, enye kwinqaku ngalinye elingasebenzisiyo. Apha, umzekelo, awukwazi ukuphawula, apha unqatshelwe ilungelo lokuvota, kwaye ngokubanzi, kutheni iifomula zingabonakali kwisikrini?

(Un)isicelo seHabr esisemthethweni - HabrApp 2.0: ukufumana ukufikelela
Kwagqitywa: sifuna into ekhululekile, emnandi, into eyethu. Kuthekani ngesicelo sakho sikaHabr?
Makhe ndikunike izikrini ezimbalwa ukuqonda imeko.

(Un)isicelo seHabr esisemthethweni - HabrApp 2.0: ukufumana ukufikelelaIjongeka into enje oku - ye. isicelo habr.com

Uluhlu "lwezinto eziphazamisayo"

  • Awukwazi ukukala upapasho oluhlelo lwalo lwahlukileyo ku-0
  • Akusoloko kunokwenzeka ukubhala uluvo
  • Uvoto alusebenzi
  • Iifomula azibonakali kumxholo omnyama (omnyama kumnyama)
  • Ayizizo zonke iibhukhimaksi ezikhoyo

Ewe, i-app ayizange ihlaziywe ukususela ngo-Agasti kulo nyaka uphelileyo, kodwa isembi. Ngokubanzi, kufuneka ilungiswe.

Icandelo lokuqala. Ukukhangela ukufikelela.

Umbuzo oKhawulezayo kaGoogle "habrahabr API" ithi sele iphelelwe lixesha indawo yokugcina kwi-Github, ayihlaziywa ukususela ngoko November 21 2016kwaye oku, okomzuzwana, iminyaka emibini enesiqingatha.

Ukungahoyi inyani yokuba le yi-PHP, skrolela ezantsi kwaye ufunde:

Ukufumana i-ID yesicelo

Ukuthatha inzuzo le fomu kuHabrahabr, kufuneka uchaze ngokufutshane undoqo wesicelo esitsha kunye nenjongo efuna i-API.

Akukho mbuzo, ukuba ufuna ukufikelela, uyakufuna. Sibhala ileta (efinyeziweyo):

Ileta

Kukho umnqweno wokwenza isicelo seHabr esekwe kwi-PWA. Kukho izizathu ezininzi zoku. 

Eyokuqala neyona icacileyo: isicelo se-Android asihlangabezani neemfuno zam zobuqu.

Okwesibini: akukho zaziso zomthonyama ezaneleyo malunga nazo zonke iintlobo zezinto ezidla ngokuza nge-imeyile (amagqabantshintshi, umzekelo).

Okwesithathu: ukugaya komntu (njengembono) kubantu / kwiindawo ezinomdla kum, kuthathela ingqalelo izinto endinomdla kuzo.

Impendulo, ewe, yayingemnandi kakhulu, kodwa ubuncinci inyanisekile:

Ngelishwa, ukufikelela kwi-API yethu akufumaneki okwangoku. Siceba ukuqalisa kwakhona ukunika ufikelelo emva kokuba sigqibezele i-API, kodwa asikabi nayo nayiphi na imihla echanekileyo okwangoku, kuba Ngoku sixakekile sisombulula eminye imisebenzi ephambili.

β€œKulungile, akukho ngxaki! Siza kuza nento!" - Ndazixelela kwaye ndaqala ukukhangela.

Icandelo lesibini. Ukugrumba nzulu.

Ngokusekelwe kwingqiqo, ukuba isicelo siyasebenza, ngoko sinokufikelela kwi-API, kwaye ifakwe kwi-hardwired kwisicelo. Makhe sihlalutye.

Kuba sijongene netrafikhi, iWireshark lukhetho lwethu. Ngaphandle kweentlungu ezithile, uqhagamshele ifowuni kwi-Intanethi ngekhompyuter yedesktop, sivula isicelo kwaye sijonge izicelo:

(Un)isicelo seHabr esisemthethweni - HabrApp 2.0: ukufumana ukufikelela
Kucacile ukuba akukho nto icacileyo

Ewe, yonke into ifihliwe, kodwa andifuni ukuphazamisa nge-cryptography. Emva koko kufuneka ujonge ngaphakathi kwesicelo ngokwaso.

Idityanisiwe .apk, masiqalise ukukhangela. Ifuna ntoni nayiphi na i-API? Kunene, i siphelo, indawo apho zonke izicelo ziya khona. Oku mhlawumbi ngu-http(s), masizame ukufumana u-"https://":

Kwifayile AuthLinkManager.smali sifumana

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

Le yikhowudi yomatshini wenyani we-Android (UDalvik VM), ayiqondwa kangako ebantwini, kodwa isenolwazi oluphangaleleyo. Ezi zintathu zihlala zihleli, zigweba ngomxholo wazo kunye negama, kunye nendawo yokugcina i-GitHub, zisetyenziselwa ukucela uphawu lokufikelela usebenzisa indlela. GET.

Makhe sijonge ngakumbi. Ifayile ezayo ngokulandelayo kuphendlo yi NetworkModule.smali:

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

Kwaye nantsi indawo yokuya kunye nezicelo zakho!

Ukuze umxhasi ozibhalayo asebenze ngokufanelekileyo, kukho into enye kuphela eseleyo yokufumanisa - client_id, ekunokwenzeka ukuba ibesisiphawuli esisodwa sesicelo.

Nangona kunjalo, ukukhangela lo mbhalo kwikhowudi yomthombo akuzange kukhokelele ekufumaneni ulwazi olufanelekileyo...

Kodwa ngequbuliso kwenye yeefayile amehlo am abamba imigca enomdla:

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

Oku, njengoko unokuqonda, kukungena kwelogi. Kodwa urekhoda ntoni?

Icandelo lesithathu. Ezi zigodo!

Sisebenzisa adb logcat ukujonga iilog zesicelo.

(Un)isicelo seHabr esisemthethweni - HabrApp 2.0: ukufumana ukufikelela

Ngokungalindelekanga, ezi zigodo zajika zaba neenkcukacha ngakumbi kunokuba bekulindelwe.

Apha asinazo kuphela izinto esizidingayo client_idkodwa uphawu umsebenzisi/usetyenziso, kunye Ngema ΠΈ iphasiwedi kwisicatshulwa esicacileyo!

Ezinye iithiyori iyelenqeUbukho nje bogama lokungena kunye negama lokugqitha kwilog abenzakalisi nto, kuba ezi logs zinokufundwa kuphela nokuba ngamalungelo engcambu okanye udibaniso nge. adb. Kodwa ngenxa yokuba phakathi kwabantu abafunda i-Habr kukho abaphuhlisi be-Android abanokuthi basebenze ukulungisa ingxaki, oku kuba yingxaki.

Kule meko, "ukutshaja simahla" kwisikhululo seenqwelomoya kunokubangela ukubiwa kweakhawunti, kodwa ngubani okufunayo?
Kwezi logs sinokukhupha:

  • client_id ΠΈ apikeyefunekayo ukufikelela Api;
  • I-URL yogunyaziso lomsebenzisi (engaqhelekanga, kodwa akukho nto kwindawo yokugcina malunga nale ndlela, mhlawumbi ayinikezelwanga?)

Kwenzeka njalo. Ngokusekwe kolu phando luncinci, umsebenzi sele uqhubeka kwiprojekthi encinci - ukuphunyezwa kwethu kwesicelo esiphathwayo. Ndicela abo bafuna ukuncedisa ukuba babhale umyalezo, nabo bonke abanye - bavote (kuba ndifuna ukuqonda ukuba kukho umntu odinga oku).

Бпасиalu

Ngabasebenzisi ababhalisiweyo kuphela abanokuthatha inxaxheba kuphando. Ngena, ndiyacela.

Ngaba uyasisebenzisa isicelo sikaHabr esiphathwayo?

  • Ewe, ndiyayisebenzisa, ndonwabile ngayo

  • Ewe, ndiyayisebenzisa, isicelo sibangela ukuphazamiseka

  • Hayi, ndisebenzisa inguqulelo yewebhu kwifowuni yam

  • Hayi, ndisebenzisa iHabr kwikhompyuter yam

Bali-357 abasebenzisi abavotileyo. Abasebenzisi abasi-30 abakhange.

umthombo: www.habr.com

Yongeza izimvo