(Un) opisyal nga aplikasyon sa Habr - HabrApp 2.0: pag-access

Usa ka laay ug medyo makalaay nga gabii, ako, naglakaw opisyal Habr nga aplikasyon, sa makausa pa gibawog nako ang akong mga tudlo, usa alang sa matag non-working feature. Dinhi, pananglitan, dili ka makakomento, dinhi gihikawan ka sa katungod sa pagboto, ug sa kinatibuk-an, nganong ang mga pormula dili makita sa screen?

(Un) opisyal nga aplikasyon sa Habr - HabrApp 2.0: pag-access
Nakahukom kini: nagkinahanglan kami og usa ka butang nga komportable, makapahimuot, usa ka butang nga among kaugalingon. Unsa man ang bahin sa imong kaugalingon nga aplikasyon alang sa Habr?
Hatagan ko ikaw og pipila ka mga screenshot aron masabtan ang sitwasyon.

(Un) opisyal nga aplikasyon sa Habr - HabrApp 2.0: pag-accessMurag ingon ani kini - sa. aplikasyon sa habr.com

Listahan sa mga "kasamok"

  • Dili nimo ma-rate ang publikasyon kansang rating lahi sa 0
  • Dili kanunay posible ang pagsulat og komento
  • Ang mga botohan dili molihok
  • Ang mga pormula dili makita sa ngitngit nga tema (itom sa itom)
  • Dili tanang bookmark anaa

Oo, ang app wala pa gi-update sukad sa Agosto sa miaging tuig, apan kini dili maayo. Sa kinatibuk-an, kini kinahanglan nga ayohon.

Unang bahin. Nangita ug access.

Dali nga Pangutana sa Google "habrahabr API" niingon nga medyo outdated na tipiganan sa Github, wala gi-update sukad Nobyembre 21 2016, ug kini, sa makadiyot, duha ug tunga ka tuig.

Pagbaliwala sa kamatuoran nga kini ang PHP, pag-scroll down ug basaha:

Pagkuha sa Application ID

Pagpahimulos sa kini nga porma sa Habrahabr, kinahanglan nimo nga ihulagway sa daklit ang esensya sa bag-ong aplikasyon ug ang katuyoan kung diin kinahanglan ang usa ka API.

Wala’y pangutana, kung kinahanglan nimo nga maka-access, kinahanglan nimo kini. Nagsulat kami usa ka sulat (gipamubo):

Usa ka sulat

Adunay tinguha sa paghimo og aplikasyon alang sa Habr base sa PWA. Adunay daghang mga hinungdan niini. 

Ang una ug labing klaro: ang aplikasyon sa Android wala makatagbo sa akong personal nga mga kinahanglanon.

Ikaduha: walay igo nga lumad nga mga pahibalo mahitungod sa tanang matang sa mga butang nga kasagaran moabut pinaagi sa email (mga komento, pananglitan).

Ikatulo: personal nga mga paghilis (isip usa ka panglantaw) sa mga tawo/hub nga nakapainteres kanako, nga gikonsiderar ang akong mga interes.

Ang tubag, siyempre, dili kaayo makapahimuot, apan labing menos matinud-anon:

Ikasubo, ang pag-access sa among API dili magamit karon. Nagplano kami nga ipadayon ang paghatag og access pagkahuman namong mahuman ang API, apan wala pa kami bisan unsang eksaktong petsa, tungod kay Sa pagkakaron nagkapuliki mi sa pagsulbad sa ubang prioridad nga mga buluhaton.

"Okay walay problema! Atong buhaton ang usa ka butang!" - Gisultihan nako ang akong kaugalingon ug nagsugod sa pagpangita.

Ikaduhang bahin. Mga lawom nga pagpangubkob.

Base sa lohika, kung ang aplikasyon nagdagan, nan kini adunay access sa API, ug kini hardwired sa aplikasyon. Atong analisahon.

Tungod kay nag-atubang kami sa trapiko, ang Wireshark ang among gipili. Dili kung wala’y mga kasakit, nga nagkonektar sa telepono sa Internet pinaagi sa usa ka desktop computer, giablihan namon ang aplikasyon ug gitan-aw ang mga hangyo:

(Un) opisyal nga aplikasyon sa Habr - HabrApp 2.0: pag-access
Klaro nga walay klaro

Oo, ang tanan gi-encrypt, apan dili ko gusto nga magsamok sa cryptography. Unya kinahanglan nimo nga tan-awon ang sulod sa aplikasyon mismo.

Decompiled .apk, sugdan na nato pagpangita. Unsa ang gikinahanglan sa bisan unsang API? tama, katapusang punto, ang dapit diin ang tanan nga mga hangyo moadto. Kini tingali ang (mga) http, atong sulayan pagpangita ang "https://":

Sa file AuthLinkManager.smali atong makita

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

Kini ang code alang sa Android virtual machine (Dalvik VM), dili kaayo masabtan sa mga tawo, apan medyo informative gihapon. Kining tulo ka mga constant, nga gihukman pinaagi sa ilang sulod ug ngalan, ingon man ang GitHub repository, gigamit sa paghangyo og access token gamit ang pamaagi GET.

Atong tan-awon pa. Ang file nga moabut sunod sa pagpangita mao ang NetworkModule.smali:

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

Ug ania ang lugar nga adtoan sa imong mga hangyo!

Alang sa kaugalingon nga gisulat nga kliyente nga molihok sa husto, adunay usa ra ka butang nga nahabilin aron mahibal-an - client_id, nga lagmit usa ka talagsaon nga identifier alang sa aplikasyon.

Apan, ang pagpangita niini nga teksto sa source code wala mosangpot sa pagpangita sa may kalabutan nga impormasyon...

Apan sa kalit sa usa sa mga file ang akong mga mata nakakuha sa pipila ka makapaikag nga mga linya:

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

Kini, ingon sa imong masabtan, usa ka log entry. Apan unsa ang pagrekord?

Ikatulo nga bahin. Kini ang mga troso!

Gigamit namo adb logcat aron makita ang mga log sa aplikasyon.

(Un) opisyal nga aplikasyon sa Habr - HabrApp 2.0: pag-access

Sa wala damha, ang mga troso nahimong mas detalyado kaysa gipaabot.

Dinhi kita adunay dili lamang sa atong gikinahanglan client_idapan timaan user/aplikasyon, ug pagsulod ΠΈ password sa tin-aw nga teksto!

Pipila ka mga teorya sa panagkunsaboAng presensya lamang sa usa ka login ug password sa mga troso dili makadaot sa bisan unsa, tungod kay kini nga mga troso mabasa lamang nga adunay mga katungod sa gamut o koneksyon pinaagi sa adb. Apan tungod sa kamatuoran nga taliwala sa mga tawo nga nagbasa sa Habr adunay mga nag-develop sa Android nga mahimo’g gipaandar ang pag-debug, nahimo kini nga problema.

Sa kini nga kaso, ang "libre nga pagsingil" sa airport mahimong moresulta sa pagpangawat sa account, apan kinsa ang nanginahanglan niini?
Gikan niini nga mga troso atong makuha:

  • client_id ΠΈ apikeygikinahanglan aron ma-access API;
  • URL sa pagtugot sa gumagamit (katingad-an, apan wala sa repositoryo bahin sa kini nga pamaagi, tingali wala kini gihatag?)

Mao to nahitabo. Pinasukad niining gamay nga panukiduki, gisugdan na ang pagtrabaho sa usa ka gamay nga proyekto - ang among kaugalingon nga pagpatuman sa usa ka mobile application. Gihangyo ko ang mga gusto nga motabang sa pagsulat sa usa ka mensahe, ug ang tanan - sa pagboto (tungod kay gusto nako nga masabtan kung adunay kinahanglan niini).

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

Ang mga rehistradong tiggamit lamang ang makaapil sa survey. Sign in, walay sapayan.

Gigamit ba nimo ang Habr mobile application?

  • Oo, gigamit nako kini, nalipay ako niini

  • Oo, gigamit ko kini, ang aplikasyon hinungdan sa kahasol

  • Dili, gigamit nako ang bersyon sa web sa akong telepono

  • Dili, gigamit nako ang Habr gikan sa akong kompyuter

357 ka tiggamit ang nagboto. 30 ka tiggamit ang nag-abstain.

Source: www.habr.com

Idugang sa usa ka comment