(Un) tagradh oifigeil Habr - HabrApp 2.0: a’ faighinn cothrom

Aon fheasgar lag agus gu math dòrainneach mar-thà, mi, a’ leum troimhe oifigeil Iarrtas Habr, a-rithist chrom mi mo chorragan, aon airson gach feart nach robh ag obair. An seo, mar eisimpleir, chan urrainn dhut beachd a thoirt seachad, an seo tha còir bhòtaidh agad a dhiùltadh, agus san fharsaingeachd, carson nach eil na foirmlean rim faicinn air an sgrion?

(Un) tagradh oifigeil Habr - HabrApp 2.0: a’ faighinn cothrom
Chaidh co-dhùnadh: bha feum againn air rudeigin comhfhurtail, tlachdmhor, rudeigin againn fhìn. Dè mu dheidhinn an tagradh agad fhèin airson Habr?
Leig dhomh beagan dhealbhan-sgrìn a thoirt dhut gus an suidheachadh a thuigsinn.

(Un) tagradh oifigeil Habr - HabrApp 2.0: a’ faighinn cothromA’ coimhead rudeigin mar seo e - bho. tagradh habr.com

Liosta de "mì-ghoireasachd"

  • Chan urrainn dhut foillseachadh a tha eadar-dhealaichte bho 0 a mheas
  • Chan eil e an-còmhnaidh comasach beachd a sgrìobhadh
  • Chan eil cunntasan-bheachd ag obair
  • Chan eil foirmlean rim faicinn ann an cuspair dorcha (dubh air dubh)
  • Chan eil a h-uile comharra-leabhair ri fhaighinn

Tha, cha deach an aplacaid ùrachadh bhon Lùnastal an-uiridh, ach tha e fhathast dona. San fharsaingeachd, feumar a rèiteachadh.

Pàirt a h-aon. A’ coimhead airson ruigsinneachd.

Ceist Ghoogle luath "Habrahabr API" tha e ag ràdh gu bheil e gu math seann-fhasanta mu thràth tasgaidh air Github, nach deach ùrachadh bhon uair sin An t-Samhain 21 2016, agus seo, airson mionaid, dà bhliadhna gu leth.

Le dearmad gur e PHP a tha seo, sgrolaich sìos agus leugh:

A’ faighinn ID an Iarrtais

A ’gabhail brath air foirm seo air Habrahabr, feumaidh tu cunntas goirid a thoirt air brìgh an tagraidh ùr agus an adhbhar airson a bheil feum aige air API.

Chan eil ceist sam bith ann, ma dh'fheumas tu faighinn a-steach, feumaidh tu e. Bidh sinn a’ sgrìobhadh litir (giorrachadh):

Litir

Tha miann ann tagradh a dhèanamh airson Habr stèidhichte air PWA. Tha grunn adhbharan ann airson seo. 

A 'chiad agus as fhollaisiche: chan eil an aplacaid Android a' coinneachadh ri na riatanasan pearsanta agam.

San dàrna h-àite: chan eil fiosan dùthchasach gu leòr ann mu gach seòrsa rud a thig mar as trice air post-d (beachdan, mar eisimpleir).

San treas àite: geàrr-chunntasan pearsanta (mar shealladh) air daoine/mòr-ionadan anns a bheil ùidh agam, a’ toirt aire do na h-ùidhean agam.

Cha robh am freagairt, gu dearbh, glè thaitneach, ach co-dhiù onarach:

Gu mì-fhortanach, chan eil cothrom air an API againn ri fhaighinn an-dràsta. Tha sinn an dùil ath-thòiseachadh a’ toirt seachad ruigsinneachd às deidh dhuinn crìoch a chuir air an API, ach chan eil cinn-latha cinnteach againn fhathast, oir Tha sinn an-dràsta trang a’ fuasgladh ghnìomhan prìomhachais eile.

“Ceart gu leòr, gun duilgheadas! Thig sinn suas le rudeigin!" - thuirt mi rium fhìn agus thòisich mi a 'coimhead.

Pàirt a dhà. Cladh domhainn.

Stèidhichte air loidsig, ma tha an aplacaid a 'ruith, tha cothrom aige air an API, agus tha e cruaidh a-steach don tagradh. Dèanamaid anailis.

Leis gu bheil sinn a’ dèiligeadh ri trafaic, is e Wireshark an roghainn againn. Chan ann às aonais beagan pianta, às deidh dhuinn am fòn a cheangal ris an eadar-lìn tro choimpiutair deasg, bidh sinn a’ fosgladh an aplacaid agus a ’coimhead air na h-iarrtasan:

(Un) tagradh oifigeil Habr - HabrApp 2.0: a’ faighinn cothrom
Tha e soilleir nach eil dad soilleir

Tha, tha a h-uile dad air a chrioptachadh, ach chan eil mi airson a bhith ag obair le cryptography. An uairsin feumaidh tu coimhead taobh a-staigh an tagraidh fhèin.

Decompiled .apk, tòisichidh sinn a 'coimhead. Dè a dh'fheumas API sam bith? Deas, aig an deireadh, an t-àit anns an tèid gach iarrtas. Is dòcha gur e seo http(s), feuchaidh sinn ri “https://” a lorg:

Ann am faidhle AuthLinkManager.smali lorg sinn

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

Seo an còd airson inneal mas-fhìor Android (Dalvik VM), chan eil e gu math so-thuigsinn dha daoine, ach fhathast gu math fiosrachail. Tha na trì rèiteachaidhean sin, a’ breithneachadh a rèir an susbaint agus an ainm, a bharrachd air an stòr GitHub, air an cleachdadh gus comharra ruigsinneachd iarraidh a’ cleachdadh an dòigh GET.

Bheir sinn sùil nas fhaide. Is e am faidhle a thig suas an ath rud san rannsachadh NetworkModule.smali:

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

Agus seo an t-àite airson a dhol leis na h-iarrtasan agad!

Gus an obraich an neach-dèiligidh fèin-sgrìobhte gu ceart, chan eil ach aon rud air fhàgail ri dhèanamh a-mach - client_id, a tha dualtach aithnichear sònraichte airson an tagraidh.

Ach, cha do lorgadh an teacsa seo sa chòd stòr fiosrachadh iomchaidh a lorg ...

Ach gu h-obann ann am fear de na faidhlichean ghlac mo shùilean loidhnichean inntinneach:

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

Tha seo, mar a thuigeas tu, na inntrigeadh log. Ach dè a chlàradh?

Pàirt a trì. Seo na clàran!

Cleachd adb logcat gus clàran tagraidh fhaicinn.

(Un) tagradh oifigeil Habr - HabrApp 2.0: a’ faighinn cothrom

Gu h-obann, thionndaidh na logaichean a-mach gu bhith eadhon nas mionaidiche na bha dùil.

An seo chan e a-mhàin na tha a dhìth oirnn client_idach tòcan neach-cleachdaidh / tagradh, agus logadh a-steach и facal-faire ann an teacsa soilleir!

Cuid de theòiridhean co-fheallChan eil làthaireachd logadh a-steach agus facal-faire anns na logaichean a 'dèanamh cron air rud sam bith, oir chan urrainnear na logaichean sin a leughadh ach le còraichean bunaiteach no ceangal tro adb. Ach air sgàth gu bheil luchd-leasachaidh Android am measg nan daoine a tha a’ leughadh Habr a dh’ fhaodadh a bhith comasach air debugging a dhèanamh, bidh seo na dhuilgheadas.

Anns a 'chùis seo, faodaidh "cosgais an-asgaidh" aig a' phort-adhair a bhith mar thoradh air goid cunntais, ach cò a dh'fheumas e?
Bho na logaichean seo is urrainn dhuinn a thoirt a-mach:

  • client_id и apikeya dhìth airson faighinn a-steach api;
  • URL cead neach-cleachdaidh (neònach, ach chan eil dad anns an stòr mun dòigh seo, is dòcha nach eil e air a thoirt seachad?)

Sin mar a thachair. Stèidhichte air an rannsachadh beag seo, tha obair a’ dol air adhart mu thràth air pròiseact beag - ar buileachadh fhèin air tagradh gluasadach. Bidh mi ag iarraidh air an fheadhainn a tha airson cuideachadh gus teachdaireachd a sgrìobhadh, agus a h-uile duine eile - bhòtadh (oir tha mi airson tuigsinn a bheil feum aig duine air seo).

Спасибо за внимание!

Chan fhaod ach luchd-cleachdaidh clàraichte pàirt a ghabhail san sgrùdadh. Soidhnig a-steach, mas e do thoil e.

Am bi thu a’ cleachdadh an aplacaid gluasadach Habr?

  • Tha, bidh mi ga chleachdadh, tha mi toilichte leis

  • Tha, bidh mi ga chleachdadh, tha an tagradh ag adhbhrachadh mì-ghoireasachd

  • Chan e, bidh mi a’ cleachdadh an dreach lìn air an fhòn agam

  • Chan e, bidh mi a’ cleachdadh Habr bhon choimpiutair agam

Bhòt 357 neach-cleachdaidh. Sheall 30 neach-cleachdaidh.

Source: www.habr.com

Cuir beachd ann