(On)offiziell Habr Applikatioun - HabrApp 2.0: Zougang ze kréien

Ee langweilen a schonn zimlech langweilegen Owend, ech bléien duerch offiziell Habr Applikatioun, nach eng Kéier hunn ech meng Fanger gebéit, eng fir all net funktionéierend Feature. Hei kënnt Dir zum Beispill net kommentéieren, hei kritt Dir d'Wahlrecht verweigert, an allgemeng, firwat sinn d'Formelen net um Bildschierm ze gesinn?

(On)offiziell Habr Applikatioun - HabrApp 2.0: Zougang ze kréien
Et gouf decidéiert: mir brauche eppes bequemes, agreabels, eppes vun eisem eegenen. Wat iwwer Är eegen Uwendung fir Habr?
Loosst mech Iech e puer Screenshots ginn fir d'Situatioun ze verstoen.

(On)offiziell Habr Applikatioun - HabrApp 2.0: Zougang ze kréienGesäit sou eppes aus et - vun. habr.com Applikatioun

Lëscht vun "Onbequemlechkeeten"

  • Dir kënnt eng Publikatioun net bewäerten, deenen hir Bewäertung anescht ass wéi 0
  • Et ass net ëmmer méiglech e Kommentar ze schreiwen
  • Ëmfroen funktionnéieren net
  • Formelen sinn net am donkelen Thema ze gesinn (schwaarz op schwaarz)
  • Net all Lieszeeche sinn verfügbar

Jo, d'App ass zënter August d'lescht Joer net aktualiséiert ginn, awer et ass nach ëmmer schlecht. Am Allgemengen muss et fixéiert ginn.

Een Deel. Sich no Zougang.

Schnell Google Query "habrahabr API" et seet et ass schonn zimlech veroudert repository op Github, net aktualiséiert zënter November 21 2016, an dëst, fir e Moment, zwee an en halleft Joer.

Ignoréieren d'Tatsaach datt dëst PHP ass, scroll down a liest:

Kritt d'Applikatioun ID

Profitéiert dëser Form op Habrahabr, Dir musst d'Essenz vun der neier Applikatioun kuerz beschreiwen an den Zweck fir deen et eng API brauch.

Et gëtt keng Fro, wann Dir Zougang muss kréien, da braucht Dir et. Mir schreiwen e Bréif (ofgekierzt):

Bréif

Et gëtt e Wonsch eng Demande fir Habr ze maachen baséiert op PWA. Et gi verschidde Grënn dofir. 

Déi éischt an déi offensichtlechst: d'Android Applikatioun entsprécht meng perséinlech Ufuerderungen net.

Zweetens: et ginn net genuch native Notifikatiounen iwwer all Zorte vu Saachen déi normalerweis per E-Mail kommen (z.B. Kommentaren).

Drëttens: perséinlech Verdauungen (als Perspektiv) iwwer Leit/Hubs, déi mech interesséieren, a berücksichtegt meng Interessen.

D'Äntwert war natierlech net ganz agreabel, awer op d'mannst éierlech:

Leider ass den Zougang zu eiser API de Moment net verfügbar. Mir plangen den Zougang erëm unzefänken nodeems mir d'API fäerdeg gemaach hunn, awer mir hunn nach keng exakt Datumen, well Mir sinn am Moment amgaang aner prioritär Aufgaben ze léisen.

"Okay, kee Problem! Mir kommen op eppes!" - Ech hu mir gesot an ugefaang ze kucken.

Zweeten Deel. Déif Ausgruewungen.

Baséiert op Logik, wann d'Applikatioun leeft, dann huet se Zougang zu der API, an et ass an d'Applikatioun hardwired. Loosst eis analyséieren.

Well mir mam Traffic ze dinn hunn, ass Wireshark eise Choix. Net ouni Péng, nodeems Dir den Telefon mam Internet iwwer en Desktop Computer verbonnen hutt, öffnen mir d'Applikatioun a kucken d'Ufroen:

(On)offiziell Habr Applikatioun - HabrApp 2.0: Zougang ze kréien
Et ass kloer datt näischt kloer ass

Jo, alles ass verschlësselt, awer ech wëll net mat Kryptografie messen. Da musst Dir an der Applikatioun selwer kucken.

Dekompiléiert .apk, loosst eis ufänken ze kucken. Wat brauch all API? Riets, Endpunkt, der Plaz wou all Ufroe goen. Dëst ass wahrscheinlech http(en), loosst eis probéieren "https://" ze fannen:

Am Dossier AuthLinkManager.smali fannen

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

Dëst ass de Code fir d'Android virtuell Maschinn (Dalvik VM), net ganz verständlech fir de Mënsch, awer trotzdem zimlech informativ. Dës dräi Konstanten, no hirem Inhalt an dem Numm beurteelen, souwéi de GitHub Repository, gi benotzt fir en Zougangstoken mat der Method ze froen GET.

Kucke mer weider. De Fichier deen nächst an der Sich kënnt ass NetworkModule.smali:

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

An hei ass d'Plaz fir mat Ären Ufroen ze goen!

Fir datt de selbstgeschriwwene Client richteg funktionnéiert, ass et nëmmen eng Saach fir erauszefannen - client_id, wat héchstwahrscheinlech en eenzegaartegen Identifizéierer fir d'Applikatioun ass.

Wéi och ëmmer, d'Sich no dësem Text am Quellcode huet net gefouert fir relevant Informatioun ze fannen ...

Awer op eemol an engem vun de Fichieren hunn meng Aen e puer interessant Zeilen gefaang:

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

Dëst, wéi Dir kënnt verstoen, ass e Log-Entrée. Awer opzehuelen wat?

Drëtten Deel. Dëst sinn d'Logbicher!

Mir benotzen adb logcat Applikatioun Logbicher ze gesinn.

(On)offiziell Habr Applikatioun - HabrApp 2.0: Zougang ze kréien

Onerwaart sinn d'Logbicher nach méi detailléiert wéi erwaart.

Hei hu mir net nëmmen dat wat mir brauchen client_idmee token Benotzer / Applikatioun, an Login и Passwuert am Kloertext!

E puer VerschwörungstheorienDéi blo Präsenz vun engem Login a Passwuert an de Logbicher schued näischt, well dës Logbicher nëmme mat entweder root Rechter oder enger Verbindung via adb. Awer wéinst der Tatsaach datt ënnert de Leit déi Habr liesen et Android Entwéckler sinn déi Debugging aktivéiert hunn, gëtt dëst e Problem.

An dësem Fall, "gratis Opluedstatiounen" um Flughafen kann zu Kont Vol Resultat, mä wien brauch et?
Aus dëse Logbicher kënne mir extrahieren:

  • client_id и apikeynéideg fir Zougang API;
  • User Autorisatioun URL (komesch, awer et gëtt näischt am Repository iwwer dës Method, vläicht ass et net geliwwert?)

Sou ass et geschitt. Baséierend op dëser klenger Fuerschung ass d'Aarbecht schonn un engem klenge Projet amgaang - eis eegen Implementatioun vun enger mobiler Applikatioun. Ech froen déi, déi hëllefe wëllen, e Message ze schreiwen, an all déi aner - ze wielen (well ech wëll verstoen, ob een dat brauch).

Merci fir Är Opmierksamkeet!

Nëmme registréiert Benotzer kënnen un der Ëmfro deelhuelen. Umellen, wann ech glift.

Benotzt Dir d'Habr mobil Applikatioun?

  • Jo, ech benotzen et, ech si frou domat

  • Jo, ech benotzen et, d'Applikatioun verursaacht Onbequemlechkeet

  • Nee, ech benotzen d'Webversioun op mengem Telefon

  • Nee, ech benotzen Habr vu mengem Computer

357 Benotzer hunn gestëmmt. 30 Benotzer hu sech enthalen.

Source: will.com

Setzt e Commentaire