(Un)aplikasi Habr resmi - HabrApp 2.0: entuk akses
Siji sore languid lan wis cukup boring, aku, leafing liwat resmi Aplikasi Habr, sepisan maneh aku mbengkongaken driji, siji kanggo saben fitur non-makarya. Ing kene, contone, sampeyan ora bisa menehi komentar, ing kene sampeyan ora duwe hak milih, lan umume, kenapa rumus ora katon ing layar?
Diputusake: kita butuh sing nyaman, nyenengake, sing kita dhewe. Apa babagan aplikasi sampeyan dhewe kanggo Habr?
Ayo kula menehi sawetara gambar kanggo ngerti kahanan.
Piye wae katon kaya iki iku - saka. aplikasi habr.com
Dhaptar "inconveniences"
Sampeyan ora bisa menehi rating publikasi sing ratinge beda karo 0
Pitakon Google Cepet "habrahabr API" ngandika iku wis cukup outdated gudang ing Github, ora dianyari wiwit November 21 2016, lan iki, kanggo wayahe, rong taun setengah.
Nglirwakake kasunyatan manawa iki PHP, gulung mudhun lan waca:
Ora ana pitakonan, yen sampeyan kudu entuk akses, mula sampeyan butuh. Kita nulis layang (disingkat):
Layang
Ana kepinginan kanggo nggawe aplikasi kanggo Habr adhedhasar PWA. Ana sawetara alasan kanggo iki.
Sing pertama lan sing paling jelas: aplikasi Android ora nyukupi syarat pribadiku.
Kapindho: ora cukup kabar asli babagan kabeh perkara sing biasane teka liwat email (komentar, contone).
Katelu: digests pribadi (minangka perspektif) ing wong / hub sing narik kawigaten kula, njupuk menyang akun kapentinganku.
Jawaban, mesthi, ora nyenengake, nanging paling jujur:
Sayange, akses menyang API kita saiki ora kasedhiya. We rencana kanggo nerusake nyedhiyani akses sawise kita rampung finalizing API, nanging kita durung duwe tanggal pas, amarga Saiki kita sibuk ngrampungake tugas prioritas liyane.
βOke, ora masalah! Kita bakal nggawe sesuatu!" - Aku marang aku lan miwiti looking.
Bagian loro. Penggalian jero.
Adhedhasar logika, yen aplikasi wis mlaku, banjur nduweni akses menyang API, lan hardwired menyang aplikasi. Ayo analisa.
Amarga kita ngatasi lalu lintas, Wireshark dadi pilihan kita. Ora tanpa rasa lara, sawise nyambungake telpon menyang Internet liwat komputer desktop, kita mbukak aplikasi lan ndeleng panjalukan:
Cetha ora ana sing jelas
Ya, kabeh wis dienkripsi, nanging aku ora pengin ngganggu kriptografi. Banjur sampeyan kudu katon ing aplikasi kasebut dhewe.
Dikompilasi WMV, ayo miwiti nggoleki. Apa wae sing dibutuhake API? bener, endpoint, Panggonan ngendi kabeh panjalukan. Iki mbokmenawa http(s), ayo goleki "https: //":
Iki kode kanggo mesin virtual Android (Dalvik VM), ora banget dingerteni kanggo manungsa, nanging isih cukup informatif. Telu konstanta iki, miturut isi lan jeneng, uga repositori GitHub, digunakake kanggo njaluk token akses nggunakake metode kasebut. GET.
Ayo katon luwih. File sing muncul sabanjure ing panelusuran yaiku NetworkModule.smali:
const-string v0, "https://habr.com/api/v1/"
Lan iki minangka papan kanggo panjaluk sampeyan!
Kanggo klien sing ditulis dhewe bisa mlaku kanthi bener, mung ana siji sing kudu dipikirake - client_id, sing paling mungkin minangka pengenal unik kanggo aplikasi kasebut.
Nanging, nggoleki teks iki ing kode sumber ora mimpin kanggo nemokake informasi sing cocog ...
Nanging dumadakan ing salah sawijining file mripatku kejiret sawetara garis sing menarik:
Iki, kaya sing sampeyan ngerteni, minangka entri log. Nanging ngrekam apa?
Bagian telu. Iki log!
Kita nggunakake adb logcat kanggo ndeleng log aplikasi.
Ora dinyana, log dadi luwih rinci tinimbang sing dikarepake.
Ing kene kita ora mung duwe apa sing dibutuhake client_idNanging token pangguna / aplikasi, lan mlebu ΠΈ sandi ing teks biasa!
Sawetara teori konspirasiAnane mung login lan sandhi ing log ora ngrusak apa-apa, amarga log kasebut mung bisa diwaca kanthi hak root utawa sambungan liwat adb. Nanging amarga kasunyatane ing antarane wong sing maca Habr ana pangembang Android sing bisa ngaktifake debugging, iki dadi masalah.
Ing kasus iki, "pangisian daya gratis" ing bandara bisa nyebabake nyolong akun, nanging sapa sing butuh?
Saka log iki kita bisa extract:
client_id ΠΈ apikeydibutuhake kanggo ngakses api;
URL wewenang pangguna (aneh, nanging ora ana apa-apa ing repositori babagan metode iki, bisa uga ora kasedhiya?)
Mangkono kedadeyane. Adhedhasar riset cilik iki, karya wis ditindakake ing proyek cilik - implementasine aplikasi seluler dhewe. Aku takon sing pengin bantuan kanggo nulis pesen, lan wong liya - kanggo milih (amarga aku pengin ngerti apa ana sing perlu iki).
Matur suwun!
Mung pangguna pangguna sing bisa melu survey. mlebunggih.
Apa sampeyan nggunakake aplikasi seluler Habr?
Ya, aku nggunakake, aku seneng
Ya, aku nggunakake, aplikasi kasebut nyebabake ora nyaman