(Un) سرڪاري Habr ايپليڪيشن - HabrApp 2.0: رسائي حاصل ڪرڻ

هڪ ٿلهي ۽ اڳي ئي ڪافي بور ڪندڙ شام، مان، لنگهي رهيو آهيان سرڪاري هيبر ايپليڪيشن، هڪ ڀيرو ٻيهر مون پنهنجي آڱرين کي ڇڪايو، هر هڪ غير ڪم ڪندڙ خصوصيت لاء. هتي، مثال طور، توهان تبصرو نٿا ڪري سگهو، هتي توهان کي ووٽ ڏيڻ جي حق کان انڪار ڪيو ويو آهي، ۽ عام طور تي، فارموليون اسڪرين تي ڇو نه نظر اچن ٿا؟

(Un) سرڪاري Habr ايپليڪيشن - HabrApp 2.0: رسائي حاصل ڪرڻ
اهو فيصلو ڪيو ويو: اسان کي ڪجهه آرامده، خوشگوار، اسان جي پنهنجي شيء جي ضرورت آهي. Habr لاءِ توهان جي پنهنجي درخواست بابت ڇا؟
اچو ته صورتحال کي سمجهڻ لاءِ توهان کي ڪجهه اسڪرين شاٽ ڏيان.

(Un) سرڪاري Habr ايپليڪيشن - HabrApp 2.0: رسائي حاصل ڪرڻڪجهه هن طرح نظر اچي ٿو ان - جو. habr.com ايپليڪيشن

"تڪليفن" جي فهرست

  • توهان ڪنهن اشاعت جي درجه بندي نٿا ڪري سگهو جنهن جي درجه بندي 0 کان مختلف آهي
  • اهو هميشه ممڪن ناهي ته هڪ تبصرو لکڻ
  • پولس ڪم نه ڪندا آھن
  • فارمولا اونداهي موضوع ۾ نظر نه ٿا اچن (ڪارو تي ڪارو)
  • سڀ بک مارڪ موجود نه آهن

ها، ايپ گذريل سال آگسٽ کان اپڊيٽ نه ڪئي وئي آهي، پر اهو اڃا تائين خراب آهي. عام طور تي، ان کي درست ڪرڻ جي ضرورت آهي.

حصو پهريون. رسائي ڳولي رهيا آهن.

تڪڙو گوگل سوال "habrahabr API" اهو چوي ٿو ته اهو اڳ ۾ ئي پراڻو آهي مخزن Github تي، اپڊيٽ نه ٿيو نومبر 21 2016۽ هي، هڪ لمحي لاءِ، ٻه ۽ اڌ سال.

ان حقيقت کي نظر انداز ڪندي ته هي پي ايڇ پي آهي، هيٺ اسڪالر ڪريو ۽ پڙهو:

ايپليڪيشن ID حاصل ڪرڻ

فائدو کڻڻ هن فارم Habrahabr تي، توھان کي مختصر طور تي بيان ڪرڻ جي ضرورت آھي نئين ايپليڪيشن جو خلاصو ۽ مقصد جنھن لاءِ ان کي API جي ضرورت آھي.

ڪو به سوال ناهي، جيڪڏهن توهان کي رسائي حاصل ڪرڻ جي ضرورت آهي، ته توهان کي ان جي ضرورت آهي. اسان هڪ خط لکندا آهيون (مختصر):

خط

PWA جي بنياد تي حبر لاءِ درخواست ڏيڻ جي خواهش آهي. ان جا ڪيترائي سبب آهن. 

پهريون ۽ سڀ کان وڌيڪ واضح: Android ايپليڪيشن منهنجي ذاتي گهرجن کي پورو نٿو ڪري.

ٻيو: هر قسم جي شين جي باري ۾ ڪافي مقامي اطلاع نه آهن جيڪي عام طور تي اي ميل ذريعي ايندا آهن (مثال طور تبصرو).

ٽيون: ذاتي هضم (هڪ نقطه نظر جي طور تي) ماڻهن / حب تي جيڪي منهنجي دلچسپي رکن ٿا، منهنجي مفادن کي مدنظر رکندي.

جواب، يقينا، تمام خوشگوار نه هو، پر گهٽ ۾ گهٽ ايماندار:

بدقسمتي سان، اسان جي API تائين رسائي في الحال دستياب ناهي. اسان API کي حتمي شڪل ڏيڻ کان پوءِ رسائي فراهم ڪرڻ ٻيهر شروع ڪرڻ جو ارادو رکون ٿا، پر اسان وٽ اڃا تائين ڪا به صحيح تاريخ نه آهي، ڇاڪاڻ ته اسان هن وقت ٻين ترجيحي ڪمن کي حل ڪرڻ ۾ مصروف آهيون.

”ٺيڪ آهي، ڪو مسئلو ناهي! اسان ڪجهه کڻي اچون ٿا!" - مون پاڻ کي ٻڌايو ۽ ڏسڻ شروع ڪيو.

حصو ٻيو. عميق کوٽائي.

منطق جي بنياد تي، جيڪڏهن ايپليڪيشن هلائي رهي آهي، پوء ان کي API تائين رسائي آهي، ۽ اهو ايپليڪيشن ۾ هارڊ وائرڊ آهي. اچو ته تجزيو ڪريون.

جيئن ته اسان ٽريفڪ سان معاملو ڪري رهيا آهيون، Wireshark اسان جي پسند آهي. ڪجھ دردن کان سواء، فون کي انٽرنيٽ سان ڊيسڪ ٽاپ ڪمپيوٽر ذريعي ڳنڍيندي، اسان ايپليڪيشن کي کوليو ۽ درخواستون ڏسو:

(Un) سرڪاري Habr ايپليڪيشن - HabrApp 2.0: رسائي حاصل ڪرڻ
اهو واضح آهي ته ڪجهه به واضح ناهي

ها، هر شي انڪريپٽ ٿيل آهي، پر مان نه ٿو چاهيان ته ڪرپٽ گرافي سان گڙٻڙ. ان کان پوء توهان کي اپليڪيشن جي اندر اندر ڏسڻ جي ضرورت آهي.

ٺهرايل .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 ورچوئل مشين لاءِ (دلوڪ وي ايم)، انسانن لاء تمام سمجھڻ وارو ناهي، پر اڃا تائين ڪافي معلوماتي. اهي ٽي مستقل، انهن جي مواد ۽ نالي سان فيصلو ڪندي، گڏوگڏ 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 ايپليڪيشن لاگ ڏسڻ لاءِ.

(Un) سرڪاري Habr ايپليڪيشن - HabrApp 2.0: رسائي حاصل ڪرڻ

اوچتو، لاگ ان کان به وڌيڪ تفصيلي ٿي ويا توقع کان.

هتي اسان وٽ نه رڳو اهو آهي جيڪو اسان کي گهربل آهي client_idپر نشان استعمال ڪندڙ/ايپليڪيشن، ۽ لاگ ان и پاسورڊ سادي متن ۾!

ڪجهه سازشي نظريالاگ ان ۾ صرف لاگ ان ۽ پاسورڊ جي موجودگي ڪنهن به شيءِ کي نقصان نه پهچائيندي، ڇو ته اهي لاگز صرف روٽ رائيٽس يا ڪنيڪشن ذريعي پڙهي سگهجن ٿا. adb. پر ان حقيقت جي ڪري ته هبر پڙهڻ وارن ماڻهن ۾ اينڊرائيڊ ڊولپر موجود آهن جن کي ڊيبگنگ فعال ٿي سگهي ٿي، اهو مسئلو بڻجي ٿو.

انهي صورت ۾، ايئرپورٽ تي "مفت چارج" اڪائونٽ چوري جي نتيجي ۾ ٿي سگهي ٿي، پر ڪنهن کي ضرورت آهي؟
انهن لاگن مان اسان ڪڍي سگهون ٿا:

  • client_id и apikeyتائين رسائي جي ضرورت آهي api;
  • يوزر اختيار ڪرڻ وارو URL (عجيب، پر هن طريقي جي حوالي سان مخزن ۾ ڪجھ به نه آهي، شايد اهو مهيا نه ڪيو ويو آهي؟)

ائين ئي ٿيو. هن ننڍڙي تحقيق جي بنياد تي، ڪم اڳ ۾ ئي هڪ ننڍڙي منصوبي تي جاري آهي - اسان جي پنهنجي هڪ موبائل ايپليڪيشن تي عمل درآمد. آئون انهن کان پڇان ٿو جيڪي مدد ڪرڻ چاهين ٿا پيغام لکڻ ۾، ۽ هر ڪنهن کي - ووٽ ڏيڻ لاءِ (ڇاڪاڻ ته مان اهو سمجهڻ چاهيان ٿو ته ڇا ڪنهن کي هن جي ضرورت آهي).

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

صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا. سائن ان ڪريو، توهان جي مهرباني.

ڇا توهان Habr موبائل ايپليڪيشن استعمال ڪندا آهيو؟

  • ها، مان ان کي استعمال ڪريان ٿو، مان ان سان خوش آهيان

  • ها، مان ان کي استعمال ڪريان ٿو، ايپليڪيشن تڪليف سبب

  • نه، مان پنهنجي فون تي ويب ورزن استعمال ڪريان ٿو

  • نه، مان پنهنجي ڪمپيوٽر مان Habr استعمال ڪريان ٿو

357 صارفين ووٽ ڏنو. 30 استعمال ڪندڙن کي روڪيو ويو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو