(Un) fampiharana Habr ofisialy - HabrApp 2.0: mahazo fidirana

Indray takariva mandreraka sady efa tena mankaleo, izaho, miala OFISIALY Fampiharana Habr, nanenjana indray ny rantsantanako aho, iray isaky ny endri-javatra tsy miasa. Eto, ohatra, tsy afaka maneho hevitra, eto ianao dia tsy mahazo ny zo hifidy, ary amin'ny ankapobeny, nahoana no tsy hita eo amin'ny efijery ny formula?

(Un) fampiharana Habr ofisialy - HabrApp 2.0: mahazo fidirana
Tapa-kevitra izany: mila zavatra mampiadana, mahafinaritra, zavatra ho an'ny tenanay izahay. Ahoana ny amin'ny fangatahanao manokana ho an'ny Habr?
Avelao aho hanome anao pikantsary vitsivitsy mba hahatakarana ny toe-javatra.

(Un) fampiharana Habr ofisialy - HabrApp 2.0: mahazo fidiranaToa toy izao izany - ny. fampiharana habr.com

Lisitry ny "fahasahiranana"

  • Tsy azonao atao ny manome naoty publication iray izay tsy mitovy amin'ny 0 ny naoty
  • Tsy azo atao foana ny manoratra fanehoan-kevitra
  • Tsy mandeha ny fitsapan-kevitra
  • Tsy hita amin'ny lohahevitra maizina ny formulas (mainty amin'ny mainty)
  • Tsy misy ny tsoratadidy rehetra

Eny, tsy nisy fanavaozana ny app nanomboka tamin'ny volana aogositra tamin'ny taon-dasa, fa mbola ratsy ihany. Amin'ny ankapobeny dia mila amboarina izany.

Fizarana voalohany. Mitady fidirana.

Fanontaniana Google haingana "habrahabr API" milaza fa efa tena lany andro repository amin'ny Github, tsy nohavaozina hatramin'izay Novambra 21 2016, ary ity, mandritra ny fotoana fohy, roa taona sy tapany.

Raha tsy miraharaha ny hoe PHP ity dia midina ary vakio:

Mahazo ny ID Application

Manararaotra ny ity endrika ity amin'ny Habrahabr, mila mamaritra fohifohy ny maha-zava-dehibe ny fampiharana vaovao sy ny tanjona ilainy API ianao.

Tsy misy fanontaniana, raha mila mahazo fidirana ianao dia mila izany. Manoratra taratasy izahay (nohafohezina):

taratasy

Misy ny faniriana hanao fangatahana Habr mifototra amin'ny PWA. Misy antony maromaro mahatonga izany. 

Ny voalohany sy mazava indrindra: ny fampiharana Android dia tsy mahafeno ny fepetra takiko manokana.

Faharoa: tsy ampy ny fampandrenesana teratany momba ny karazan-javatra rehetra izay matetika tonga amin'ny mailaka (fanehoan-kevitra, ohatra).

Fahatelo: fandevonan-kanina manokana (ho fomba fijery) amin'ny olona/habe mahaliana ahy, amin'ny fiheverana ny tombontsoako.

Mazava ho azy fa tsy dia nahafinaritra ny valiny, fa farafaharatsiny tamim-pahatsorana:

Indrisy fa tsy misy ny fidirana amin'ny API amin'izao fotoana izao. Mikasa ny hanohy ny fanomezana fidirana izahay rehefa vita ny famitana ny API, saingy tsy mbola manana daty marina izahay, satria Sahirana amin'ny famahana asa laharam-pahamehana hafa izahay amin'izao fotoana izao.

β€œEny, tsy misy olana! Hanao zavatra izahay!" - hoy aho ary nanomboka nijery.

Fizarana faharoa. Fandavahana lalina.

Miorina amin'ny lojika, raha mandeha ny rindranasa, dia manana fidirana amin'ny API izy, ary ampidirina amin'ny fampiharana. Andeha isika handinika.

Satria miatrika fifamoivoizana isika, Wireshark no safidintsika. Tsy misy fanaintainana, rehefa mampifandray ny telefaona amin'ny Internet amin'ny alΓ lan'ny solosaina desktop, dia manokatra ny fampiharana izahay ary mijery ny fangatahana:

(Un) fampiharana Habr ofisialy - HabrApp 2.0: mahazo fidirana
Mazava fa tsy misy mazava

Eny, voatahiry ny zava-drehetra, saingy tsy te-hikorontana amin'ny kriptografika aho. Avy eo dia mila mijery ao anatin'ilay fampiharana ianao.

Decompiled .apk, andeha isika hanomboka hitady. Inona no ilain'ny API? marina, endpoint, toerana alehan'ny fangatahana rehetra. Ity angamba no http(s), andao hiezaka hitady "https://":

Ao anaty rakitra AuthLinkManager.smali hitantsika

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

Ity ny kaody ho an'ny milina virtoaly Android (Dalvik VM), tsy dia takatry ny sain'ny olombelona, ​​fa mbola manome vaovao. Ireo tsy miova telo ireo, raha tsaraina amin'ny atiny sy ny anarany, ary koa ny fitahirizana GitHub, dia ampiasaina hangataka famantarana fidirana amin'ny fampiasana ny fomba. GET.

Andeha hojerentsika bebe kokoa. Ny rakitra izay mipoitra manaraka amin'ny fikarohana dia NetworkModule.smali:

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

Ary eto ny toerana halehanao miaraka amin'ny fangatahanao!

Ho an'ny mpanjifa sora-tena mba hiasa araka ny tokony ho izy dia zavatra iray ihany no tokony hodinihina - client_id, izay azo inoana fa famantarana tokana ho an'ny fampiharana.

Na izany aza, ny fikarohana an'ity lahatsoratra ity amin'ny kaody loharano dia tsy nitarika ny fitadiavana fampahalalana mifandraika ...

Saingy tampoka teo tao amin'ny iray amin'ireo rakitra dia nahasarika andalana mahaliana ny masoko:

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

Ity, araka ny azonao takarina, dia fidirana amin'ny log. Fa nandrakitra inona?

Fizarana fahatelo. Ireo no logs!

Ampiasainay adb logcat hijerena ny diarin'ny fampiharana.

(Un) fampiharana Habr ofisialy - HabrApp 2.0: mahazo fidirana

Tsy nampoizina anefa fa vao mainka nisongadina kokoa noho ny nantenaina ny logs.

Tsy izay ilaintsika ihany no ananantsika eto client_idsaingy famantarana mpampiasa / fampiharana, ary Hiditra ΠΈ tenimiafina amin'ny soratra mazava!

Misy teoria tsikombakomba sasanyNy fisian'ny fidirana sy tenimiafina fotsiny ao amin'ny diary dia tsy manimba na inona na inona, satria ireo logs ireo dia tsy azo vakiana miaraka amin'ny zo fototra na fifandraisana amin'ny alΓ lan'ny adb. Saingy noho ny zava-misy fa eo amin'ireo olona mamaky Habr dia misy mpamorona Android izay mety ho afaka ny debugging, dia lasa olana izany.

Amin'ity tranga ity dia mety hiteraka halatra kaonty ny "fanomezana maimaim-poana" any amin'ny seranam-piaramanidina, fa iza no mila izany?
Avy amin'ireto logs ireto isika dia afaka mamoaka:

  • client_id ΠΈ apikeytakiana hidirana API;
  • URL fanomezan-dΓ lana ho an'ny mpampiasa (hafahafa, fa tsy misy na inona na inona ao amin'ny tahiry momba an'io fomba io, mety tsy omena izany?)

Izany no nitranga. Mifototra amin'ity fikarohana kely ity, efa mandeha ny asa amin'ny tetikasa kely iray - ny fampiharana ny fampiharana finday. Miangavy ireo izay te hanampy aho mba hanoratra hafatra, sy ny olon-drehetra - hifidy (satria tiako ho takatra raha misy mila an'ity).

Fidio ny Fiteninao

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Mampiasa ny fampiharana finday Habr ve ianao?

  • Eny, mampiasa azy aho, faly aho

  • Eny, ampiasaiko izany, miteraka fanelingelenana ny fampiharana

  • Tsia, mampiasa ny dikan-tranonkala amin'ny findaiko aho

  • Tsia, mampiasa Habr amin'ny solosainako aho

Mpampiasa 357 no nifidy. Mpampiasa 30 no nifady.

Source: www.habr.com

Add a comment