(Un) daim ntawv thov Habr official - HabrApp 2.0: nkag mus
Ib tug languid thiab twb heev boring yav tsaus ntuj, kuv, leafing los ntawm official Habr daim ntawv thov, ib zaug ntxiv kuv khoov kuv cov ntiv tes, ib qho rau txhua qhov tsis ua haujlwm. Ntawm no, piv txwv li, koj tsis tuaj yeem tawm tswv yim, ntawm no koj raug tsis lees paub txoj cai pov npav, thiab feem ntau, vim li cas cov qauv tsis pom ntawm qhov screen?
Nws tau txiav txim siab: peb xav tau tej yam yooj yim, qab ntxiag, ib yam ntawm peb tus kheej. Yuav ua li cas txog koj tus kheej daim ntawv thov rau Habr?
Cia kuv muab ob peb lub screenshots rau koj kom nkag siab qhov xwm txheej.
Saib tej yam zoo li no nws - ntawm. habr.com daim ntawv thov
Cov qauv tsis pom nyob rau hauv lub ntsiab tsaus nti (dub ntawm dub)
Tsis yog txhua tus bookmarks muaj
Yog lawm, lub app tsis tau hloov kho txij li lub Yim Hli xyoo tas los, tab sis nws tseem tsis zoo. Feem ntau, nws yuav tsum tau kho.
Ntu ib. Nrhiav kev nkag.
Quick Google Query "Habrahabr API" nws hais tias nws twb dhau lawm chaw cia khoom ntawm Github, tsis hloov tshiab txij li thaum Kaum ib hlis 21 2016, thiab qhov no, ib pliag, ob thiab ib nrab xyoo.
Tsis quav ntsej qhov tseeb tias qhov no yog PHP, scroll down thiab nyeem:
Tau txais daim ntawv thov ID
Ua kom zoo dua daim ntawv no ntawm Habrahabr, koj yuav tsum tau piav qhia luv luv txog cov ntsiab lus ntawm daim ntawv thov tshiab thiab lub hom phiaj uas nws xav tau API.
Tsis muaj lus nug, yog tias koj xav tau nkag mus, ces koj xav tau. Peb sau ib tsab ntawv (abbreviated):
Sau ntawv
Muaj kev xav ua daim ntawv thov rau Habr raws li PWA. Muaj ob peb lub laj thawj rau qhov no.
Thawj thiab pom tseeb tshaj plaws: daim ntawv thov Android tsis ua raws li kuv tus kheej xav tau.
Hmoov tsis zoo, kev nkag mus rau peb API tsis muaj tam sim no. Peb npaj yuav rov pib muab kev nkag tau tom qab peb ua tiav qhov API tiav, tab sis peb tseem tsis tau muaj hnub tim, vim tias Peb tam sim no tibneeg hu tauj coob daws lwm yam haujlwm tseem ceeb.
βOkay, tsis muaj teeb meem! Peb yuav los txog ib yam dab tsi!" - Kuv hais rau kuv tus kheej thiab pib saib.
Ntu ob. Kev khawb tob.
Raws li cov logic, yog tias daim ntawv thov ua haujlwm, ces nws muaj kev nkag mus rau API, thiab nws yog hardwired rau hauv daim ntawv thov. Cia peb tsom xam.
Txij li thaum peb tab tom ua lag luam, Wireshark yog peb txoj kev xaiv. Tsis yog tsis muaj qee qhov mob, tau txuas xov tooj mus rau Is Taws Nem ntawm lub khoos phis tawj desktop, peb qhib daim ntawv thov thiab saib cov lus thov:
Nws yog qhov tseeb tias tsis muaj dab tsi meej
Yog, txhua yam yog encrypted, tab sis kuv tsis xav mess nrog cryptography. Tom qab ntawd koj yuav tsum saib hauv daim ntawv thov nws tus kheej.
Decompiled .apk, cia peb pib saib. Ib qho API xav tau dab tsi? Txoj cai, xaus, qhov chaw uas txhua qhov kev thov mus. Qhov no tej zaum http(s), cia peb sim nrhiav "https://":
Rau tus kheej-sau tus neeg siv los ua haujlwm kom raug, tsuas muaj ib yam uas yuav tsum paub txog - client_id, uas feem ntau yuav yog tus cim tshwj xeeb rau daim ntawv thov.
Txawm li cas los xij, kev tshawb nrhiav cov ntawv no hauv qhov chaws tsis tau ua rau nrhiav cov ntaub ntawv cuam tshuam ...
Tab sis mam li nco dheev nyob rau hauv ib qho ntawm cov ntaub ntawv kuv ob lub qhov muag ntes tau ib co nthuav kab:
Qhov no, raws li koj tuaj yeem nkag siab, yog lub log nkag. Tab sis sau dab tsi?
Ntu peb. Cov no yog cov log!
Peb siv adb logcat mus saib daim ntawv teev npe.
Unexpectedly, cov cav tau tig los ua kom ntxaws dua li qhov xav tau.
Ntawm no peb tsis muaj qhov peb xav tau xwb client_idTab sis token user/application, thiab tus ID nkag mus ΠΈ lo lus zais hauv cov ntawv dawb!
Qee qhov kev koom tes theoriesQhov tsuas yog muaj tus ID nkag mus thiab lo lus zais hauv cov cav tsis ua mob dab tsi, txij li cov cav no tsuas tuaj yeem nyeem nrog cov cai hauv paus lossis kev sib txuas ntawm adb. Tab sis vim qhov tseeb tias ntawm cov neeg nyeem Habr muaj cov neeg tsim tawm hauv Android uas tuaj yeem muaj kev debugging enabled, qhov no dhau los ua teeb meem.
Hauv qhov no, "kev them nyiaj pub dawb" ntawm lub tshav dav hlau yuav ua rau muaj kev nyiag nyiaj, tab sis leej twg xav tau nws?
Los ntawm cov cav no peb tuaj yeem rho tawm:
client_id ΠΈ apikeyyuav tsum tau nkag mus api;
Tus neeg siv kev tso cai URL (qhov txawv, tab sis tsis muaj dab tsi hauv qhov chaw khaws cia txog txoj kev no, tej zaum nws tsis muab?)
Yog li ntawd nws tshwm sim. Raws li qhov kev tshawb fawb me me no, kev ua haujlwm tau ua tiav ntawm qhov project me me - peb tus kheej ua raws li daim ntawv thov mobile. Kuv thov kom cov uas xav pab sau ntawv, thiab txhua leej txhua tus - mus pov npav (vim kuv xav nkag siab seb leej twg xav tau qhov no).
Ua tsaug rau koj txoj kev paub!
Tsuas yog cov neeg siv sau npe tuaj yeem koom nrog hauv daim ntawv ntsuam xyuas. Kos npe rau hauvthov.
Koj puas siv Habr mobile thov?
Yog, kuv siv nws, kuv zoo siab nrog nws
Yog, kuv siv nws, daim ntawv thov ua rau tsis yooj yim
Tsis yog, kuv siv lub web version ntawm kuv lub xov tooj