یو تیاره او لا دمخه ډیر ستړی کوونکی ماښام ، زه ، پاڼی ته ځم رسمي د هابر غوښتنلیک، یو ځل بیا ما خپلې ګوتې ودرولې، د هر غیر کار کولو ځانګړتیا لپاره یو. دلته، د مثال په توګه، تاسو نشئ کولی تبصره وکړئ، دلته تاسو د رایې ورکولو حق رد کړی، او په عموم کې، ولې فورمولونه په سکرین کې نه لیدل کیږي؟
دا پریکړه وشوه: موږ یو څه راحته، خوندور، خپل یو څه ته اړتیا لرو. د حبر لپاره ستاسو د خپل غوښتنلیک په اړه څه؟
اجازه راکړئ تاسو ته د وضعیت پوهیدو لپاره یو څو سکرین شاټونه درکړم.
داسې یو څه ښکاري دا - د. habr.com غوښتنلیک
د "ناامنیو" لیست
- تاسو نشئ کولی د یوې خپرونې درجه بندي کړئ چې درجه یې له 0 څخه توپیر لري
- دا تل ممکنه نه ده چې تبصره ولیکئ
- رایې کار نه کوي
- فورمولونه په تیاره موضوع کې نه لیدل کیږي (تور پر تور)
- ټول بک مارکونه شتون نلري
هو، ایپ د تیر کال د اګست راهیسې تازه شوی نه دی، مګر دا لاهم خراب دی. په عموم کې، دا باید تنظیم شي.
لومړۍ برخه. د لاسرسي په لټه کې.
د ګوګل چټک پوښتنه "habrahabr API" دا وايي چې دا دمخه خورا زوړ دی
د دې حقیقت په پام کې نیولو سره چې دا PHP دی، لاندې سکرول او ولولئ:
د غوښتنلیک ID ترلاسه کول
ګټه پورته کول
دا فورمه په Habrahabr کې، تاسو اړتیا لرئ په لنډه توګه د نوي غوښتنلیک جوهر او هغه هدف تشریح کړئ چې د دې لپاره API ته اړتیا لري.
هیڅ پوښتنه نشته، که تاسو لاسرسی ته اړتیا لرئ، نو تاسو ورته اړتیا لرئ. موږ یو لیک لیکو (لنډیز):
یو لیک
د PWA پر بنسټ د حبر لپاره د غوښتنلیک جوړولو لیوالتیا شتون لري. د دې څو لاملونه شتون لري.
لومړی او خورا څرګند: د Android غوښتنلیک زما شخصي اړتیاوې نه پوره کوي.
دوهم: د هر ډول شیانو په اړه کافي اصلي خبرتیاوې شتون نلري چې معمولا د بریښنالیک له لارې راځي (د مثال په توګه تبصرې).
دریم: شخصي هضمونه (د لید په توګه) د خلکو/مرکزونو په اړه چې زما سره علاقه لري، زما د ګټو په پام کې نیولو سره.
ځواب، البته، ډیر خوندور نه و، مګر لږترلږه صادقانه:
له بده مرغه، زموږ API ته لاسرسی اوس مهال شتون نلري. موږ پلان لرو چې د API نهایی کولو پای ته رسیدو وروسته د لاسرسي چمتو کول بیا پیل کړو ، مګر موږ لاهم دقیق نیټه نلرو ، ځکه چې موږ اوس د نورو لومړیتوبونو په حل کولو بوخت یو.
"ښه، کومه ستونزه نشته! موږ به یو څه راوړو!" - ما خپل ځان ته وویل او په لټه کې شوم.
دوهمه برخه. ژورې کیندنې.
د منطق پراساس، که غوښتنلیک روان وي، نو دا API ته لاسرسی لري، او دا په غوښتنلیک کې سخته ده. راځئ چې تحلیل وکړو.
له هغه ځایه چې موږ د ترافیک سره معامله کوو ، ویرشارک زموږ انتخاب دی. د ځینو دردونو پرته، د ډیسټاپ کمپیوټر له لارې د انټرنیټ سره د تلیفون سره نښلول، موږ اپلیکیشن خلاصوو او غوښتنو ته یې ګورو:
دا روښانه ده چې هیڅ شی روښانه نه دی
هو، هرڅه کوډ شوي دي، مګر زه نه غواړم د کریپټوګرافي سره ګډوډ کړم. بیا تاسو اړتیا لرئ د غوښتنلیک دننه وګورئ.
تخریب شوی .apk، راځئ چې په لټه پیل وکړو. کوم API ته اړتیا لري؟ سمه ده د پای ټکی، هغه ځای چیرې چې ټولې غوښتنې ځي. دا شاید http(s) وي، راځئ چې د "https://" موندلو هڅه وکړو:
په دوتنه کې AuthLinkManager.smali
موږ پیدا کوو
.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"
دا د Android مجازی ماشین لپاره کوډ دی (دالویک VM)، د انسانانو لپاره د پوهیدو وړ ندی، مګر بیا هم خورا معلوماتي. دا درې ثابت، د دوی د منځپانګې او نوم، او همدارنګه د GitHub ذخیره، د میتود په کارولو سره د لاسرسي نښه غوښتنه کولو لپاره کارول کیږي. GET
.
راځئ نور وګورو. هغه فایل چې په لټون کې راتلونکی راځي NetworkModule.smali
:
const-string v0, "https://habr.com/api/v1/"
او دلته ستاسو د غوښتنو سره د تګ ځای دی!
د دې لپاره چې پخپله لیکل شوي پیرودونکي په سمه توګه کار وکړي، یوازې یو شی پاتې دی چې معلومه کړي - client_id
، کوم چې ډیری احتمال د غوښتنلیک لپاره یو ځانګړی پیژندونکی دی.
په هرصورت، د سرچینې کوډ کې د دې متن لټون کول د اړونده معلوماتو موندلو لامل نه شو ...
مګر ناڅاپه په یوه فایل کې زما سترګې ځینې په زړه پوري کرښې ونیولې:
const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
دا، لکه څنګه چې تاسو پوهیږئ، د ننوتلو ننوتل دي. مګر څه ثبتول؟
دریمه برخه. دا لاګونه دي!
مونږ تری ګټه پورته کوو adb logcat
د غوښتنلیک لاګونو لیدلو لپاره.
په غیر متوقع ډول، لاګونه د تمې په پرتله حتی ډیر مفصل وو.
دلته موږ نه یوازې هغه څه لرو چې موږ ورته اړتیا لرو client_id
خو نښه کارن/اپلیکیشن، او ننوتل и شفر په ساده متن کې!
ځینې د سازش تیورۍپه لاګونو کې یوازې د ننوتلو او پټنوم شتون هیڅ شی ته زیان نه رسوي، ځکه چې دا لاګونه یوازې د روټ حقونو یا د اړیکې له لارې لوستل کیدی شي. adb
. مګر د دې حقیقت له امله چې د هابر لوستلو خلکو کې د Android پراختیا کونکي شتون لري چې ممکن د ډیبګ کولو وړ وي ، دا یوه ستونزه رامینځته کیږي.
په دې حالت کې، په هوایی ډګر کې "وړیا چارج" ممکن د حساب غلا پایله ولري، مګر څوک ورته اړتیا لري؟
د دې لاګونو څخه موږ کولی شو استخراج کړو:
client_id
иapikey
د لاسرسي لپاره اړین دي API;- د کارونکي اجازه URL (عجیب ، مګر د دې میتود په اړه په ذخیره کې هیڅ شتون نلري ، شاید دا نه وي چمتو شوی؟)
همداسې وشول. د دې کوچنۍ څیړنې پراساس، کار دمخه د یوې کوچنۍ پروژې په اړه روان دی - زموږ د ګرځنده غوښتنلیک پلي کول. زه له هغو کسانو څخه کوم چې غواړي د پیغام په لیکلو کې مرسته وکړي، او هرڅوک - رایه ورکړي (ځکه زه غواړم پوه شم چې ایا څوک دې ته اړتیا لري).
ستاسو د پاملرنې مننه!
یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي.
ایا تاسو د Habr موبایل اپلیکیشن کاروئ؟
-
هو، زه یې کاروم، زه له دې څخه خوښ یم
-
هو ، زه یې کاروم ، غوښتنلیک د تکلیف لامل کیږي
-
نه، زه په خپل تلیفون کې د ویب نسخه کاروم
-
نه، زه د خپل کمپیوټر څخه Habr کاروم
357 کاروونکو رایه ورکړه. 30 کاروونکي منع شوي.
سرچینه: www.habr.com