(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?

(Un) ohun elo Habr osise - HabrApp 2.0: gbigba wiwọle
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.

(Un) ohun elo Habr osise - HabrApp 2.0: gbigba wiwọleWulẹ 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:

(Un) ohun elo Habr osise - HabrApp 2.0: gbigba wiwọle
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://”:

Ninu faili AuthLinkManager.smali a ri

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

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ẹ:

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

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.

(Un) ohun elo Habr osise - HabrApp 2.0: gbigba wiwọle

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.

Ṣe o lo ohun elo alagbeka Habr?

  • Bẹẹni, Mo lo, inu mi dun pẹlu rẹ

  • Bẹẹni, Mo lo, ohun elo naa fa aibalẹ

  • Rara, Mo lo ẹya wẹẹbu lori foonu mi

  • Rara, Mo lo Habr lati kọnputa mi

357 olumulo dibo. 30 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun