(Un) palapala Habr mana - HabrApp 2.0: loaʻa ke komo

Hoʻokahi ahiahi ʻoluʻolu a hauʻoli loa, ʻo wau, e hele ana luna ʻO ka noi Habr, ua kukuli hou au i koʻu mau manamana lima, hoʻokahi no kēlā me kēia hiʻohiʻona hana ʻole. Eia, no ka laʻana, ʻaʻole hiki iā ʻoe ke ʻōlelo, ma ʻaneʻi ua hōʻole ʻia ʻoe i ke kuleana e koho balota, a ma ke ʻano nui, no ke aha i ʻike ʻole ʻia ai nā ʻōkuhi ma ka pale?

(Un) palapala Habr mana - HabrApp 2.0: loaʻa ke komo
Ua hoʻoholo ʻia: makemake mākou i kahi mea ʻoluʻolu, ʻoluʻolu, kahi mea no mākou iho. Pehea kāu noi ponoʻī no Habr?
E hāʻawi wau iā ʻoe i kekahi mau screenshots e hoʻomaopopo i ke kūlana.

(Un) palapala Habr mana - HabrApp 2.0: loaʻa ke komoHe mea like me keia ia - o. habr.com palapala noi

Ka papa inoa o nā "pilikia"

  • ʻAʻole hiki iā ʻoe ke helu i kahi paʻi i ʻokoʻa ka helu mai ka 0
  • ʻAʻole hiki ke kākau ʻōlelo i nā manawa a pau
  • ʻAʻole hana nā koho balota
  • ʻAʻole ʻike ʻia nā ʻōkuhi ma ke kumumanaʻo ʻeleʻele (ʻeleʻele ma ka ʻeleʻele)
  • ʻAʻole loaʻa nā bookmark a pau

ʻAe, ʻaʻole i hōʻano hou ʻia ka app mai ʻAukake i ka makahiki i hala, akā maikaʻi ʻole. Ma keʻano laulā, pono e hoʻopaʻa.

Mahele ʻekahi. Ke ʻimi nei i ke komo.

Huli Google wikiwiki "API habrahabr" ʻōlelo ʻia ua kahiko loa ia waihona waihona ma Github, ʻaʻole i hōʻano hou ʻia mai November 21 2016, a ʻo kēia, no kekahi manawa, elua makahiki a me ka hapa.

Ke nānā ʻole nei i ka ʻoiaʻiʻo ʻo PHP kēia, e kaomi i lalo a heluhelu:

Loaʻa i ka ID noi

ʻO ka hoʻohana pono ʻana keia palapala ma Habrahabr, pono ʻoe e wehewehe pōkole i ke ʻano o ka noi hou a me ke kumu e pono ai ia i kahi API.

ʻAʻohe nīnau, inā pono ʻoe e loaʻa ke komo, a laila pono ʻoe. Kākau mākou i kahi leka (pōkole):

Ke kākauʻana

Aia ka makemake e hana i kahi noi no Habr e pili ana i ka PWA. Nui nā kumu no kēia. 

ʻO ka mea mua a maopopo loa: ʻaʻole i hoʻokō ka noi Android i kaʻu mau koi pilikino.

ʻO ka lua: ʻaʻole lawa nā hoʻolaha ʻōiwi e pili ana i nā ʻano mea āpau e hele mai ma ka leka uila (nā manaʻo, no ka laʻana).

ʻO ke kolu: nā hoʻoheheʻe pilikino (ma ke ʻano he hiʻohiʻona) i nā poʻe/hus hoihoi iaʻu, e noʻonoʻo ana i kaʻu mau makemake.

ʻO ka pane, ʻoiaʻiʻo, ʻaʻole i ʻoluʻolu loa, akā ma ka liʻiliʻi loa.

ʻO ka mea pōʻino, ʻaʻole hiki ke komo i kā mākou API i kēia manawa. Hoʻolālā mākou e hoʻomaka hou i ka hāʻawi ʻana ma hope o ka hoʻopau ʻana i ka API, akā ʻaʻohe o mākou mau lā kikoʻī, no ka mea Ke paʻahana nei mākou i ka hoʻoponopono ʻana i nā hana koʻikoʻi ʻē aʻe.

“ʻAe, ʻaʻohe pilikia! E hana mākou i kekahi mea!" - Ua'ōlelo wau iaʻu iho a hoʻomaka e nānā.

Mahele ʻelua. ʻEli hohonu.

Ma muli o ka loiloi, inā e holo ana ka noi, a laila hiki iā ia ke komo i ka API, a ua paʻa i ka noi. E kālailai kākou.

No ka mea e pili ana mākou i nā kaʻa, ʻo Wireshark kā mākou koho. ʻAʻole me ka ʻeha, ke hoʻopili ʻana i ke kelepona i ka Pūnaewele ma o kahi kamepiula papa, wehe mākou i ka noi a nānā i nā noi:

(Un) palapala Habr mana - HabrApp 2.0: loaʻa ke komo
Akaka aole maopopo

ʻAe, ua hoʻopiliʻia nā mea a pau, akā,ʻaʻole au makemake e hana me ka cryptography. A laila pono ʻoe e nānā i loko o ka noi ponoʻī.

Hoʻopili ʻia .apk, e hoʻomaka kākou e nānā. He aha ka mea e pono ai kekahi API? Akau, hopena kūlike, kahi e hele ai nā noi a pau. ʻO kēia paha ka http(s), e hoʻāʻo kākou e ʻimi iā "https://":

Ma ka waihona AuthLinkManager.smali loaa ia makou

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

ʻO kēia ke code no ka mīkini virtual Android (ʻO Dalvik VM), ʻaʻole maopopo loa i nā kānaka, akā naʻe naʻe i ka ʻike. Hoʻohana ʻia kēia mau mea ʻekolu, e hoʻoholo ana i kā lākou ʻike a me ko lākou inoa, a me ka waihona GitHub, e noi i kahi hōʻailona komo e hoʻohana ana i ke ʻano. GET.

E nana hou aku kakou. ʻO ka faila e hiki mai ana ma ka huli ʻana NetworkModule.smali:

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

A eia kahi e hele ai me kāu mau noi!

No ka hana pono ʻana o ka mea kūʻai aku iā ia iho, hoʻokahi wale nō mea i koe e noʻonoʻo ai - client_id, ʻo ia paha kahi ʻike kūʻokoʻa no ka noi.

Eia naʻe, ʻaʻole i alakaʻi ka ʻimi ʻana i kēia kikokikona ma ke code kumu i ka loaʻa ʻana o ka ʻike pili...

Akā, i loko o kekahi o nā faila ua loaʻa i koʻu mau maka kekahi mau laina hoihoi:

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

ʻO kēia, e like me kāu e hoʻomaopopo ai, he log log. Akā, e hoʻopaʻa ana i ke aha?

Mahele ʻekolu. ʻO kēia nā lāʻau!

Hoʻohana mākou adb logcat e nānā i nā palapala noi.

(Un) palapala Habr mana - HabrApp 2.0: loaʻa ke komo

Me ka manaʻo ʻole, ua ʻoi aku ka nui o nā kikoʻī ma mua o ka mea i manaʻo ʻia.

Ma ʻaneʻi ʻaʻole i loaʻa iā mākou ka mea e pono ai client_idaka, hōʻailona mea hoʻohana / noi, a ʻike и hua'ōlelo ma ka kikokikona maopopo!

ʻO kekahi mau manaʻo kipiʻO ka loaʻa wale ʻana o ka inoa inoa a me ka ʻōlelo huna i loko o nā lāʻau ʻaʻole e pōʻino i kekahi mea, no ka mea hiki ke heluhelu ʻia kēia mau lāʻau me nā kuleana kumu a i ʻole kahi pilina ma o adb. Akā ma muli o ka ʻoiaʻiʻo i waena o ka poʻe e heluhelu ana iā Habr aia nā mea hoʻomohala Android i hiki ke hoʻohana i ka debugging, lilo kēia i pilikia.

I kēia hihia, hiki i ka "hoʻolimalima manuahi" ma ke kahua mokulele ke hopena i ka ʻaihue moʻokāki, akā ʻo wai ka mea e pono ai?
Mai kēia mau logs hiki iā mākou ke unuhi:

  • client_id и apikeypono e komo api;
  • URL ʻae ʻia e ka mea hoʻohana (he mea ʻē, akā ʻaʻohe mea i loko o ka waihona e pili ana i kēia ʻano, ʻaʻole paha i hāʻawi ʻia?)

Pēlā i hana ai. Ma muli o kēia noiʻi liʻiliʻi, ke hoʻomaka nei ka hana ma kahi papahana liʻiliʻi - kā mākou hoʻokō ponoʻī i kahi noi kelepona. Ke noi aku nei au i ka poʻe makemake e kōkua e kākau i kahi leka, a me nā mea ʻē aʻe - e koho balota (no ka mea makemake wau e hoʻomaopopo inā makemake kekahi i kēia).

Nā mea hou aku!

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

Ke hoʻohana nei ʻoe i ka polokalamu kelepona ʻo Habr?

  • ʻAe, hoʻohana wau ia, hauʻoli wau me ia

  • ʻAe, ke hoʻohana nei au iā ia, ke kumu o ka pilikia

  • ʻAʻole, hoʻohana wau i ka mana pūnaewele ma kaʻu kelepona

  • ʻAʻole, hoʻohana wau iā Habr mai kaʻu kamepiula

357 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 30.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka