Ngwa Habr gọọmentị (Un) - HabrApp 2.0: ịnweta ohere

Otu mgbede na-agwụ ike ma na-agwụkwa ike, m, na-agafe onye isi Ngwa Habr, ọzọ m na-ehutu mkpịsị aka m, otu maka njirimara ọ bụla anaghị arụ ọrụ. N'ebe a, dịka ọmụmaatụ, ị nweghị ike ikwu okwu, ebe a na-ajụ gị ikike ịme ntuli aka, na n'ozuzu, gịnị kpatara na anaghị ahụ usoro ndị ahụ na ihuenyo?

Ngwa Habr gọọmentị (Un) - HabrApp 2.0: ịnweta ohere
E kpebiri: anyị chọrọ ihe dị mma, nke na-atọ ụtọ, ihe nke anyị. Kedu maka ngwa nke gị maka Habr?
Ka m nye gị nseta ihuenyo ole na ole iji ghọta ọnọdụ ahụ.

Ngwa Habr gọọmentị (Un) - HabrApp 2.0: ịnweta ohereỌ dị ka nke a - nke. ngwa habr.com

Ndepụta nke "adịghị mma"

  • Ịnweghị ike ịnye akwụkwọ ọkwa ya dị iche na 0
  • Ọ naghị ekwe omume mgbe niile ide nkọwa
  • Ntuli aka anaghị arụ ọrụ
  • A naghị ahụ usoro n'ime isiokwu gbara ọchịchịrị (oji na ojii)
  • Ọ bụghị ibe edokọbara niile dị

Ee, emelitebeghị ngwa ahụ kemgbe Ọgọst afọ gara aga, mana ọ ka dị njọ. N'ozuzu, ọ dị mkpa ka edozi ya.

Akụkụ nke mbụ. Na-achọ ohere.

Ngwa ngwa Google ajụjụ "habrahabr API" ọ na-ekwu na ọ dịlarị ochie ebe nchekwa na Github, emelitebeghị ya kemgbe November 21 2016, na nke a, nwa oge, afọ abụọ na ọkara.

Na-eleghara eziokwu ahụ anya na nke a bụ PHP, gbadaa na gụọ:

Inweta ID ngwa

N'iji ohere ụdị a na Habrahabr, ịkwesịrị ịkọwapụta nkenke ihe kacha mkpa nke ngwa ọhụrụ na ebumnuche ọ chọrọ API.

Enweghị ajụjụ, ọ bụrụ na ịchọrọ ịnweta ohere, mgbe ahụ ị chọrọ ya. Anyị na-ede akwụkwọ ozi (nkenke):

Ide ihe

Enwere ọchịchọ ime ngwa maka Habr dabere na PWA. Enwere ọtụtụ ihe kpatara nke a. 

Nke mbụ na nke doro anya: ngwa gam akporo anaghị emezu ihe m chọrọ.

Nke abuo: enweghi amamọkwa obodo ezughị oke gbasara ụdị ihe niile na-abịakarị site na email (nkwupụta, ọmụmaatụ).

Nke atọ: nchịkọta onwe onye (dị ka echiche) na ndị mmadụ / ụlọ ọrụ na-amasị m, na-eburu n'uche mmasị m.

Azịza ya, n'ezie, adịghị ụtọ nke ukwuu, ma ọ dịkarịa ala, eziokwu:

Ọ dị nwute, ịnweta API anyị adịghị ugbu a. Anyị na-eme atụmatụ ịmaliteghachi inye ohere mgbe anyị mechachara API, mana anyị enweghị ụbọchị ọ bụla, n'ihi na Anyị na-arụsi ọrụ ike ugbu a idozi ọrụ ndị ọzọ dị mkpa.

"Ọ dị mma, enweghị nsogbu! Anyị ga-eme ihe!" - M gwara onwe m wee malite ile anya.

Akụkụ nke abụọ. Ngwuputa miri emi.

Dabere na mgbagha, ọ bụrụ na ngwa na-agba ọsọ, mgbe ahụ ọ nwere ohere na API, na ọ na- hardwired n'ime ngwa. Ka anyị nyochaa.

Ebe ọ bụ na anyị na-emeso okporo ụzọ, Wireshark bụ nhọrọ anyị. Ọ bụghị na-enweghị ihe mgbu, ebe anyị jikọọ ekwentị na ịntanetị site na kọmputa desktọpụ, anyị na-emepe ngwa ahụ ma lelee arịrịọ ndị a:

Ngwa Habr gọọmentị (Un) - HabrApp 2.0: ịnweta ohere
O doro anya na ọ dịghị ihe doro anya

Ee, ihe niile ezoro ezo, mana achọghị m ịmekọrịta ihe na nzuzo. Mgbe ahụ ịkwesịrị ileba anya n'ime ngwa n'onwe ya.

Achịkọtala .apk, ka anyị malite ile anya. Kedu ihe API ọ bụla chọrọ? Right, njedebe, ebe arịrịọ niile na-aga. Nke a nwere ike ịbụ http(s), ka anyị gbalịa ịchọta "https://":

Na faịlụ AuthLinkManager.smali anyị na-achọta

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

Nke a bụ koodu maka igwe mebere android (Dalvik VM), ọ bụghị ihe a ghọtara nke ọma maka ụmụ mmadụ, mana ọ ka na-enye ihe ọmụma. A na-eji usoro atọ a, na-ekpe ikpe site na ọdịnaya na aha ha, yana ebe nchekwa GitHub, iji rịọ maka ohere ịnweta site na iji usoro ahụ. GET.

Ka anyị lebakwuo anya. Faịlụ na-abịa na-esote na ọchụchọ bụ NetworkModule.smali:

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

Ma ebe a bụ ebe ị ga-aga na arịrịọ gị!

Ka onye ahịa dere onwe ya ka ọ rụọ ọrụ nke ọma, ọ dị naanị otu ihe fọdụrụ iji chọpụta - client_id, nke kacha bụrụ ihe nchọpụta pụrụ iche maka ngwa ahụ.

Agbanyeghị, ịchọ ederede a na koodu isi mmalite edugaghị n'ịchọta ozi dabara adaba...

Mana na mberede n'otu faịlụ ahụ, anya m hụrụ ahịrị ụfọdụ na-atọ ụtọ:

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

Nke a, dịka ị nwere ike ịghọta, bụ ntinye log. Ma ndekọ ihe?

Akụkụ nke atọ. Ndị a bụ ndekọ!

Anyị na-eji adb logcat ilele ndekọ ngwa.

Ngwa Habr gọọmentị (Un) - HabrApp 2.0: ịnweta ohere

N'ụzọ a na-atụghị anya ya, ndekọ ahụ wee bụrụ nke zuru ezu karịa ka a tụrụ anya ya.

N'ebe a, anyị nwere ọ bụghị naanị ihe anyị chọrọ client_idMa tọk onye ọrụ/ngwa, na banye и paswọọdụ na ederede doro anya!

Ụfọdụ echiche ịgba izuNaanị ọnụnọ nke nbanye na paswọọdụ dị na ndekọ adịghị emerụ ihe ọ bụla, ebe ọ bụ na enwere ike ịgụ ndekọ ndị a site na ikike mgbọrọgwụ ma ọ bụ njikọ site na. adb. Mana n'ihi eziokwu ahụ bụ na n'etiti ndị na-agụ Habr enwere ndị nrụpụta gam akporo nwere ike nwee ike ịmegharị ihe, nke a na-aghọ nsogbu.

N'okwu a, "ịchaji n'efu" na ọdụ ụgbọ elu nwere ike ịkpata izu ohi akaụntụ, mana onye chọrọ ya?
Site na ndekọ ndị a anyị nwere ike wepụ:

  • client_id и apikeyachọrọ iji nweta API;
  • URL ikike onye ọrụ (iche, mana ọ nweghị ihe dị na ebe nchekwa gbasara usoro a, ikekwe enyeghị ya?)

Otú ahụ ka o si mee. Dabere na obere nyocha a, ọrụ amalitelarị na obere ọrụ - mmejuputa nke anyị nke ngwa mkpanaka. M na-arịọ ndị chọrọ inyere aka dee ozi, na onye ọ bụla ọzọ - ịtụ vootu (n'ihi na m chọrọ ịghọta ma onye ọ bụla chọrọ nke a).

Gwa anyị ihe ị ga-eme!

Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. banye, Biko.

Ị na-eji ngwa mkpanaka Habr?

  • Ee, m na-eji ya, enwere m obi ụtọ na ya

  • Ee, m na-eji ya, ngwa na-akpata nsogbu

  • Mba, ana m eji ụdị webụ na ekwentị m

  • Mba, m na-eji Habr na kọmputa m

Ndị ọrụ 357 tụrụ vootu. Ndị ọrụ 30 anabataghị.

isi: www.habr.com

Tinye a comment