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?
Kwagqitywa: sifuna into ekhululekile, emnandi, into eyethu. Kuthekani ngesicelo sakho sikaHabr?
Makhe ndikunike izikrini ezimbalwa ukuqonda imeko.
Ijongeka 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
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:
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.
Ngokungalindelekanga, ezi zigodo zajika zaba neenkcukacha ngakumbi kunokuba bekulindelwe.
Apha asinazo kuphela izinto esizidingayo client_id
kodwa 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
ΠΈapikey
efunekayo 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.
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