(Un) ohun elo Habr osise - HabrApp 2.0: gbigba wiwọle
Ọkan languid ati tẹlẹ oyimbo alaidun aṣalẹ, Mo, leafing nipasẹ osise Ohun elo Habr, lekan si Mo tẹ awọn ika ọwọ mi, ọkan fun ẹya kọọkan ti kii ṣiṣẹ. Nibi, fun apẹẹrẹ, o ko le sọ asọye, nibi o ti sẹ ẹtọ lati dibo, ati ni gbogbogbo, kilode ti awọn agbekalẹ ko han loju iboju?
O ti pinnu: a nilo nkan ti o ni itunu, igbadun, nkan ti ara wa. Kini nipa ohun elo tirẹ fun Habr?
Jẹ ki n fun ọ ni awọn sikirinisoti diẹ lati ni oye ipo naa.
Wulẹ nkankan bi yi eyi ni - ti. habr.com ohun elo
Akojọ ti awọn "airọrun"
O ko le ṣe iwọn atẹjade kan ti idiyele rẹ yatọ si 0
Ko ṣee ṣe nigbagbogbo lati kọ asọye
Idibo ko ṣiṣẹ
Awọn agbekalẹ ko han ni akori dudu (dudu lori dudu)
Kii ṣe gbogbo awọn bukumaaki wa
Bẹẹni, app naa ko ti ni imudojuiwọn lati Oṣu Kẹjọ ọdun to kọja, ṣugbọn o tun buru. Ni gbogbogbo, o nilo lati wa ni titunse.
Apa kinni. Nwa fun wiwọle.
Ibeere Google yara "habrahabr API" o sọ pe o ti pẹ pupọ ibi ipamọ lori Github, ko ni imudojuiwọn niwon 21 Kọkànlá Oṣù 2016ati eyi, fun iṣẹju diẹ, odun meji ati idaji.
Ni aibikita otitọ pe eyi ni PHP, yi lọ si isalẹ ki o ka:
Gbigba ID ohun elo
Ngba anfani fọọmu yi lori Habrahabr, o nilo lati ṣe apejuwe ni ṣoki pataki ti ohun elo tuntun ati idi ti o nilo API kan.
Ko si ibeere, ti o ba nilo lati ni iwọle, lẹhinna o nilo rẹ. A kọ lẹta kan (kukuru):
Lẹta
Ifẹ kan wa lati ṣe ohun elo fun Habr ti o da lori PWA. Awọn idi pupọ lo wa fun eyi.
Akọkọ ati han julọ: ohun elo Android ko pade awọn ibeere ti ara ẹni.
Keji: ko si awọn iwifunni abinibi ti o to nipa gbogbo iru awọn nkan ti o wa nigbagbogbo nipasẹ imeeli (awọn asọye, fun apẹẹrẹ).
Kẹta: awọn iṣiro ti ara ẹni (gẹgẹbi irisi) lori awọn eniyan / awọn ile-iṣẹ ti o nifẹ mi, ni akiyesi awọn anfani mi.
Idahun, nitorinaa, ko dun pupọ, ṣugbọn o kere ju ooto:
Laanu, iraye si API wa ko si lọwọlọwọ. A gbero lati tun pese iraye si lẹhin ti a pari ipari API, ṣugbọn a ko ni awọn ọjọ gangan eyikeyi sibẹsibẹ, nitori Lọwọlọwọ a n ṣiṣẹ lọwọ lati yanju awọn iṣẹ ṣiṣe pataki miiran.
"Dara, ko si iṣoro! A yoo wa pẹlu nkan kan!" - Mo sọ fun ara mi ati bẹrẹ si wo.
Apa keji. Jin excavations.
Da lori imọran, ti ohun elo naa ba nṣiṣẹ, lẹhinna o ni iwọle si API, ati pe o jẹ lile sinu ohun elo naa. Jẹ ki a ṣe itupalẹ.
Niwọn bi a ti n ṣe pẹlu ijabọ, Wireshark ni yiyan wa. Kii ṣe laisi awọn irora diẹ, ti sopọ foonu si Intanẹẹti nipasẹ kọnputa tabili kan, a ṣii ohun elo ati wo awọn ibeere naa:
Kedere pe ohunkohun ko o han
Bẹẹni, ohun gbogbo ti wa ni ìpàrokò, sugbon Emi ko fẹ lati idotin pẹlu cryptography. Lẹhinna o nilo lati wo inu ohun elo funrararẹ.
Ti kojọpọ .apk, jẹ ki ká bẹrẹ nwa. Kini API eyikeyi nilo? Ọtun, ipari, ibi ti gbogbo awọn ibeere lọ. Eyi le jẹ http(s), jẹ ki a gbiyanju lati wa “https://”:
Eyi ni koodu fun ẹrọ foju Android (Dalvik VM), kii ṣe oye pupọ fun eniyan, ṣugbọn tun jẹ alaye pupọ. Awọn iduro mẹta wọnyi, ṣiṣe idajọ nipasẹ akoonu ati orukọ wọn, bakanna bi ibi ipamọ GitHub, ni a lo lati beere ami-iraye si ni lilo ọna naa. GET.
Jẹ ki a wo siwaju sii. Faili ti o wa ni atẹle ni wiwa ni NetworkModule.smali:
const-string v0, "https://habr.com/api/v1/"
Ati pe eyi ni aaye lati lọ pẹlu awọn ibeere rẹ!
Fun alabara ti ara ẹni lati ṣiṣẹ daradara, ohun kan ṣoṣo ni o kù lati ro ero - client_id, eyiti o ṣeese julọ idanimọ alailẹgbẹ fun ohun elo naa.
Sibẹsibẹ, wiwa ọrọ yii ni koodu orisun ko yorisi wiwa alaye ti o yẹ…
Ṣugbọn lojiji ni ọkan ninu awọn faili oju mi mu diẹ ninu awọn laini ti o nifẹ:
Eyi, bi o ṣe le loye, jẹ titẹ sii log. Ṣugbọn ṣe igbasilẹ kini?
Apa keta. Awọn wọnyi ni awọn akọọlẹ!
A nlo adb logcat lati wo awọn iwe ohun elo.
Lairotẹlẹ, awọn akọọlẹ ti jade lati jẹ alaye diẹ sii ju ti a reti lọ.
Nibi a ko ni ohun ti a nilo nikan client_id, sugbon pelu àmi olumulo / elo, ati wo ile и ọrọigbaniwọle ni ko o ọrọ!
Diẹ ninu awọn ero rikisiWiwa lasan ti iwọle ati ọrọ igbaniwọle ninu awọn akọọlẹ ko ṣe ipalara ohunkohun, nitori pe awọn igbasilẹ wọnyi le ka pẹlu boya awọn ẹtọ gbongbo tabi asopọ nipasẹ adb. Ṣugbọn nitori otitọ pe laarin awọn eniyan ti n ka Habr awọn olupilẹṣẹ Android wa ti o le ti ṣiṣẹ n ṣatunṣe aṣiṣe, eyi di iṣoro.
Ni idi eyi, "gbigba agbara ọfẹ" ni papa ọkọ ofurufu le ja si jija iroyin, ṣugbọn tani nilo rẹ?
Lati awọn akọọlẹ wọnyi a le jade:
client_id и apikeybeere lati wọle si api;
URL ašẹ olumulo (ajeji, ṣugbọn ko si nkankan ninu ibi ipamọ nipa ọna yii, boya ko pese?)
Bí ó ṣe ṣẹlẹ̀ nìyẹn. Da lori iwadii kekere yii, iṣẹ ti n lọ tẹlẹ lori iṣẹ akanṣe kekere kan - imuse tiwa ti ohun elo alagbeka kan. Mo beere awọn ti o fẹ lati ṣe iranlọwọ lati kọ ifiranṣẹ kan, ati gbogbo eniyan miiran - lati dibo (nitori Mo fẹ lati ni oye boya ẹnikẹni nilo eyi).
Ṣayẹwo bayi!
Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.