(Un)uhlelo lokusebenza lwe-Habr olusemthethweni - HabrApp 2.0: ukuthola ukufinyelela

Ngobunye ubusuku obukhathele futhi obuvele buyisicefe, mina, ngidlula isikhulu Habr application, ngaphinda ngagobisa iminwe yami, owodwa ngesici ngasinye esingasebenzi. Lapha, isibonelo, awukwazi ukuphawula, lapha unqatshelwe ilungelo lokuvota, futhi ngokuvamile, kungani amafomula engabonakali esikrinini?

(Un)uhlelo lokusebenza lwe-Habr olusemthethweni - HabrApp 2.0: ukuthola ukufinyelela
Kwanqunywa: sasidinga okuthile okunethezekile, okujabulisayo, okuthile okwethu. Kuthiwani ngesicelo sakho sikaHabr?
Ake ngikunikeze izithombe-skrini ezimbalwa ukuze uqonde isimo.

(Un)uhlelo lokusebenza lwe-Habr olusemthethweni - HabrApp 2.0: ukuthola ukufinyelelaKubukeka into efana nale lokhu kungukuthi - kwe. isicelo habr.com

Uhlu "lweziphazamiso"

  • Awukwazi ukukala okushicilelwe okukalwa kwakho okuhlukile ku-0
  • Akwenzeki njalo ukubhala amazwana
  • Amapholi awasebenzi
  • Amafomula awabonakali kutimu emnyama (okumnyama kokumnyama)
  • Akuwona wonke amabhukumaka atholakalayo

Yebo, uhlelo lokusebenza alukabuyekezwa kusukela ngo-Agasti wonyaka odlule, kodwa lusalubi. Ngokuvamile, idinga ukulungiswa.

Ingxenye yokuqala. Ifuna ukufinyelela.

Umbuzo we-Google osheshayo "habrahabr API" ithi isiphelelwe yisikhathi impela inqolobane ku-Github, ayizange ibuyekezwe kusukela ngaleso sikhathi Novemba 21 2016, futhi lokhu, okwesikhashana, iminyaka emibili nengxenye.

Ukuziba iqiniso lokuthi lena yi-PHP, skrolela phansi bese ufunda:

Ukuthola i-ID yohlelo lokusebenza

Ukuthatha inzuzo leli fomu ku-Habrahabr, udinga ukuchaza kafushane ingqikithi yohlelo olusha kanye nenjongo oludinga ngayo i-API.

Akukho mbuzo, uma udinga ukuthola ukufinyelela, uyakudinga. Sibhala incwadi (efushanisiwe):

Incwadi

Kunesifiso sokwenza isicelo sika-Habr esisekelwe ku-PWA. Kunezizathu eziningana zalokhu. 

Okokuqala nokusobala kakhulu: uhlelo lokusebenza lwe-Android aluhlangabezani nezidingo zami zomuntu siqu.

Okwesibili: azikho izaziso ezanele zomdabu mayelana nazo zonke izinhlobo zezinto ezivame ukuza nge-imeyili (amazwana, isibonelo).

Okwesithathu: ukugaya komuntu siqu (njengombono) kubantu/amahabhu engithakazelayo, ngokucabangela izinto engizithandayo.

Impendulo, yebo, ayizange ibe mnandi kakhulu, kodwa okungenani ithembekile:

Ngeshwa, ukufinyelela ku-API yethu akutholakali okwamanje. Sihlela ukuqalisa kabusha ukunikeza ukufinyelela ngemva kokuqeda ukuphothula i-API, kodwa asinazo izinsuku eziqondile okwamanje, ngoba Njengamanje simatasa sixazulula eminye imisebenzi ebalulekile.

β€œKulungile, akunankinga! Sizoqhamuka nokuthile!" - Ngazitshela futhi ngaqala ukubheka.

Ingxenye yesibili. Ukumba okujulile.

Ngokusekelwe kumqondo, uma uhlelo lokusebenza lusebenza, khona-ke lukwazi ukufinyelela ku-API, futhi lufakwe ngokuqinile kuhlelo lokusebenza. Ake sihlaziye.

Njengoba sibhekene nethrafikhi, iWireshark iyisinqumo sethu. Hhayi ngaphandle kwezinhlungu ezithile, njengoba sixhume ifoni ku-inthanethi ngekhompyutha yedeskithophu, sivula uhlelo lokusebenza bese sibheka izicelo:

(Un)uhlelo lokusebenza lwe-Habr olusemthethweni - HabrApp 2.0: ukuthola ukufinyelela
Kuyacaca ukuthi akukho okucacile

Yebo, konke kubethelwe, kodwa angifuni ukungcolisa i-cryptography. Khona-ke udinga ukubheka ngaphakathi kohlelo lokusebenza ngokwalo.

Inqanyuliwe apk, asiqale sibheke. Idingani noma iyiphi i-API? Kulungile, ukuphetha, indawo lapho zonke izicelo ziya khona. Lokhu mhlawumbe ama-http(ama), ake sizame ukuthola okuthi β€œhttps://”:

Kufayela AuthLinkManager.smali sithola

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

Lena ikhodi yomshini we-virtual we-Android (UDalvik VM), akuqondakalanga kakhulu kubantu, kodwa kusafundisa ngempela. Lezi zinto ezintathu ezingaguquki, ngokwehlulela ngokuqukethwe kwazo negama, kanye nenqolobane ye-GitHub, zisetshenziselwa ukucela ithokheni lokufinyelela kusetshenziswa indlela. GET.

Ake sibheke okunye. Ifayela eliza ngokulandelayo oseshweni lithi NetworkModule.smali:

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

Futhi nansi indawo ongaya kuyo nezicelo zakho!

Ukuze iklayenti elizibhalele lisebenze kahle, kunento eyodwa kuphela esele okufanele siyithole - client_id, okungenzeka ukuthi iyinkomba ehlukile yohlelo lokusebenza.

Nokho, ukusesha lo mbhalo kukhodi yomthombo akuzange kuholele ekutholeni ulwazi olufanele...

Kodwa kungazelelwe kwelinye lamafayela amehlo ami abamba imigqa ethokozisayo:

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

Lokhu, njengoba ungaqonda, ukungena kwelogi. Kodwa uqopha ini?

Ingxenye yesithathu. Lezi izingodo!

Sisebenzisa adb logcat ukubuka izingodo zohlelo lokusebenza.

(Un)uhlelo lokusebenza lwe-Habr olusemthethweni - HabrApp 2.0: ukuthola ukufinyelela

Kungazelelwe, izingodo zivele zinemininingwane eminingi kunalokho obekulindelwe.

Lapha asinakho kuphela esikudingayo client_idKodwa uphawu umsebenzisi/uhlelo lokusebenza, kanye ungene ngemvume ΠΈ iphasiwedi ngombhalo ongenalutho!

Eminye imibono yozunguUkuba khona nje kokungena kanye nephasiwedi kulogi akulimazi lutho, njengoba lawa malogi angafundwa kuphela noma ngamalungelo ezimpande noma uxhumano nge. adb. Kodwa ngenxa yokuthi phakathi kwabantu abafunda i-Habr kukhona abathuthukisi be-Android okungenzeka ukuthi banikwe amandla ukulungisa iphutha, lokhu kuba yinkinga.

Kulokhu, β€œukushaja kwamahhala” esikhumulweni sezindiza kungase kubangele ukwebiwa kwe-akhawunti, kodwa ubani okudingayo?
Kulawa malogi singakhipha:

  • client_id ΠΈ apikeyokudingekayo ukuze ufinyelele Api;
  • I-URL yokugunyazwa komsebenzisi (iyamangaza, kodwa akukho lutho endaweni yokugcina mayelana nale ndlela, mhlawumbe ayinikeziwe?)

Kwenzeka kanjalo-ke. Ngokusekelwe kulolu cwaningo oluncane, umsebenzi usuvele uyaqhubeka kuphrojekthi encane - ukuqaliswa kwethu kwesicelo seselula. Ngicela abafuna ukusiza ukuthi babhale umlayezo, nabo bonke abanye - bavote (ngoba ngifuna ukuqonda ukuthi kukhona yini okudingayo lokhu).

Бпасибо за вниманиС!

Abasebenzisi ababhalisiwe kuphela abangabamba iqhaza kuhlolovo. Ngena ngemvume, wamukelekile.

Ingabe uyalusebenzisa uhlelo lweselula lwe-Habr?

  • Yebo, ngiyayisebenzisa, ngijabule ngayo

  • Yebo, ngiyayisebenzisa, uhlelo lokusebenza ludala ukuphazamiseka

  • Cha, ngisebenzisa inguqulo yewebhu kufoni yami

  • Cha, ngisebenzisa i-Habr kukhompuyutha yami

Bangu-357 abasebenzisi abavotile. Abasebenzisi abangu-30 bagobile.

Source: www.habr.com

Engeza amazwana