(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?
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.
Gesä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:
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:
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:
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.
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.