Feidhmchlár oifigiúil Habr (neamh) - HabrApp 2.0: rochtain a fháil

Tráthnóna amháin atá gann agus an-leadránach cheana féin, mé, ag imeacht tríd fiacal Iarratas Habr, arís eile lúb mé mo mhéara, ceann do gach gné neamh-oibre. Anseo, mar shampla, ní féidir leat trácht a dhéanamh, anseo tá an ceart vótála á dhiúltú duit, agus go ginearálta, cén fáth nach bhfuil na foirmlí le feiceáil ar an scáileán?

Feidhmchlár oifigiúil Habr (neamh) - HabrApp 2.0: rochtain a fháil
Socraíodh: bhí rud éigin compordach, taitneamhach, rud éigin dár gcuid féin ag teastáil uainn. Cad faoi d’iarratas féin ar Habr?
Lig dom cúpla screenshots a thabhairt duit chun an cás a thuiscint.

Feidhmchlár oifigiúil Habr (neamh) - HabrApp 2.0: rochtain a fháilBreathnaíonn rud mar seo seo - de. iarratas habr.com

Liosta de na "neamháiseanna"

  • Ní féidir leat foilseachán a bhfuil a rátáil difriúil le 0 a rátáil
  • Ní bhíonn sé indéanta i gcónaí trácht a scríobh
  • Ní oibríonn pobalbhreith
  • Níl foirmlí le feiceáil i dtéama dorcha (dubh ar dubh)
  • Níl gach leabharmharc ar fáil

Sea, níor nuashonraíodh an aip ó Lúnasa na bliana seo caite, ach tá sé fós go dona. Go ginearálta, ní mór é a shocrú.

Cuid a haon. Ag lorg rochtana.

Iarratas Tapa Google "habrahabr API" deir sé go bhfuil sé as dáta go leor cheana féin stór ar Github, gan nuashonrú ó shin Samhain 21 2016, agus seo, ar feadh nóiméad, dhá bhliain go leith.

Agus neamhaird á déanamh agat gur PHP é seo, scrollaigh síos agus léigh:

Aitheantas an Iarratais a fháil

Ag baint leasa as an fhoirm seo ar Habrahabr, ní mór duit cur síos achomair a dhéanamh ar bhunús an fheidhmchláir nua agus ar an gcuspóir a bhfuil API ag teastáil uaidh.

Níl aon cheist, más gá duit rochtain a fháil, ansin is gá duit é. Scríobhaimid litir (giorraithe):

Litir

Tá fonn ann iarratas a dhéanamh ar Habr bunaithe ar PWA. Tá roinnt cúiseanna leis seo. 

An chéad cheann agus an ceann is soiléire: ní chomhlíonann an feidhmchlár Android mo riachtanais phearsanta.

Dara: níl go leor fógraí dúchasacha faoi gach cineál rudaí a thagann de ghnáth trí ríomhphost (tuairimí, mar shampla).

Ar an tríú dul síos: achoimre phearsanta (mar pheirspictíocht) ar dhaoine/moil a bhfuil suim agam iontu, ag cur mo chuid spéise san áireamh.

Ní raibh an freagra, ar ndóigh, an-taitneamhach, ach ar a laghad macánta:

Ar an drochuair, níl rochtain ar ár API ar fáil faoi láthair. Tá sé beartaithe againn rochtain a sholáthar arís tar éis dúinn an API a thabhairt chun críche, ach níl aon dátaí cruinne againn fós, mar gheall ar Táimid gnóthach faoi láthair ag réiteach tascanna tosaíochta eile.

“Ceart go leor, gan fadhb ar bith! Tiocfaimid suas le rud éigin!" - Dúirt mé liom féin agus thosaigh mé ag féachaint.

Cuid a dó. Tochailtí domhain.

Bunaithe ar an loighic, má tá an t-iarratas ag rith, ansin tá rochtain aige ar an API, agus tá sé hardwired isteach san iarratas. Déanaimis anailís.

Ós rud é go bhfuil muid ag déileáil le trácht, is é Wireshark ár rogha. Gan roinnt pianta, tar éis dúinn an fón a nascadh leis an Idirlíon trí ríomhaire deisce, osclaíonn muid an feidhmchlár agus breathnaíonn muid ar na hiarratais:

Feidhmchlár oifigiúil Habr (neamh) - HabrApp 2.0: rochtain a fháil
Is léir nach bhfuil aon rud soiléir

Sea, tá gach rud criptithe, ach níl mé ag iarraidh praiseach a dhéanamh le cripteagrafaíocht. Ansin ní mór duit breathnú taobh istigh den iarratas féin.

Decompiled . APK, a ligean ar tosú ag féachaint. Cad a theastaíonn ó aon API? Ceart, críochphointe, an áit a dtéann gach iarratas. Is dócha gur http(s) é seo, déanaimis iarracht “https://” a aimsiú:

I gcomhad AuthLinkManager.smali faighimid

.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 don mheaisín fíorúil Android (Dalvik VM), nach bhfuil an-intuigthe do dhaoine, ach fós faisnéiseach go leor. Úsáidtear na trí tairisigh seo, ag breith ar a n-inneachar agus a n-ainm, chomh maith le stór GitHub, chun chomhartha rochtana a iarraidh ag baint úsáide as an modh GET.

Breathnaímis níos faide. Is é an comhad a thagann suas eile sa chuardach NetworkModule.smali:

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

Agus seo é an áit le dul le do chuid iarrataí!

Le go n-oibreoidh an cliant féinscríofa i gceart, níl ach rud amháin fágtha le déanamh amach - client_id, arb é is dóichí ná aitheantóir uathúil don fheidhmchlár.

Mar sin féin, níor aimsíodh faisnéis ábhartha mar thoradh ar chuardach an téacs seo sa chód foinseach...

Ach go tobann i gceann de na comhaid ghlac mo shúile roinnt línte suimiúla:

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

Is iontráil loga é seo, mar a thuigeann tú. Ach cad a thaifeadadh?

Cuid a trí. Seo iad na logs!

úsáidimid adb logcat chun logaí feidhmchlár a fheiceáil.

Feidhmchlár oifigiúil Habr (neamh) - HabrApp 2.0: rochtain a fháil

Gan choinne, d'éirigh na logaí amach a bheith níos mionsonraithe fós ná mar a ceapadh.

Anseo ní mór dúinn ach an méid a theastaíonn uainn client_idAch comhartha úsáideoir/iarratas, agus logáil isteach и pasfhocal i dtéacs soiléir!

Roinnt teoiricí comhcheilgeNí dhéanfaidh láithreacht logáil isteach agus pasfhocal aon dochar sna logaí toisc nach féidir na logaí seo a léamh ach amháin le cearta fréamhacha nó le ceangal trí adb. Ach mar gheall ar an bhfíric go bhfuil forbróirí Android i measc na ndaoine a léann Habr a d'fhéadfadh a bheith cumasaithe debugging, éiríonn sé seo ina fhadhb.

Sa chás seo, d’fhéadfadh goid cuntais a bheith mar thoradh ar “mhuirearú saor in aisce” ag an aerfort, ach cé atá ag teastáil?
Ó na logaí seo is féidir linn a bhaint as:

  • client_id и apikeyag teastáil chun rochtain a fháil API;
  • URL údaraithe úsáideora (aisteach, ach níl aon rud sa stór faoin modh seo, b'fhéidir nach bhfuil sé curtha ar fáil?)

Sin mar a tharla sé. Bunaithe ar an taighde beag bídeach seo, tá obair ar siúl cheana féin ar thionscadal beag - ár bhfeidhmchlár soghluaiste féin a chur i bhfeidhm. Iarraim orthu siúd atá ag iarraidh cabhrú le teachtaireacht a scríobh, agus gach duine eile - vótáil (mar ba mhaith liom a thuiscint an bhfuil sé seo ag teastáil ó aon duine).

Go raibh maith agat as bhur n-aire!

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

An úsáideann tú feidhmchlár soghluaiste Habr?

  • Sea, úsáidim é, táim sásta leis

  • Sea, úsáidim é, is cúis le míchaoithiúlacht an t-iarratas

  • Ní féidir, úsáidim an leagan gréasáin ar mo ghuthán

  • Ní hea, úsáidim Habr ó mo ríomhaire

Vótáil 357 úsáideoir. Staon 30 úsáideoir.

Foinse: will.com

Add a comment