Kassem | قاسم باغر
Kassem | قاسم باغر

@Kassem_Bagher

34 تغريدة 126 قراءة Apr 23, 2020
برنامج Charles Proxy على الماك عبارة عن HTTP Debugging Proxy يسمح لك تشوف الـ HTTP Requests بينك وبين السيرفر. يعني لو مهتم تعرف الـ API Calls اللي يستخدمها اي تطبيق (بعض التطبيقات وليس جميعها)، هذا البرنامج راح يفيدك.
الشرح في التغريدات الجاية??
charlesproxy.com
تشارلز بروكسي متوفر على الايفون ايضا. لو مهتم بنسخه الايفون (ولو انك ما تحتاجها ونسخة الماك راح تكفيك) اشتريها من الان لانه احتمال ابل تشيله من الستور بحكم بعض التغييرات في سياستهم واللي راح تأثر كمان على اغلب التطبيقات اللي تعمل بلوك للاعلانات.
itunes.apple.com
بعد ما تحمل Charles Proxy على الماك اختار من القائمة
Proxy > Proxy Settings
وحط نفس الاعدادات
بعد كذا من القائمة اختار
Proxy >SSL Proxy Settings
واعمل نفس اللي بالاعدادات
الان تحتاج تعرف الـ IP الخاص بالماك علشان نستخدمها في الخطوة القادمة (فيه طرق مختلفة لكن بشرح اوضح واسهل طريقة)
افتح الـ System Preferences
واختار Network ولاحظ الـ IP الخاص بالجهاز.
الان من اعدادات الايفون، روح للشبكة اللي متصل عليها واضغط على ايقونة الاستعلام (التعجب) اللي بجانب الشبكة، بعدها
Configure Proxy > Manual وحط عنوان الـ IP الخاص بجهاز الماك (اللي اخذناه بالخطوة السابقة) والمنفذ 8888
(لاحظ ان الـ IP الخاص بك راح يكون مختلف)
هذا فيديو للخطوات
بعد حفظ التغييرات افتح متصفح سفاري على الايفون وروح للرابط التالي:
charlesproxy.com
راح تجيك الرسالة التالي واللي راح تحمل SSL CA Certificate على جوالك.
اظغط على Allow وبعدها Install.
شوف الخطوات
اتاكد ان الشهادة اتثبتت على الجوال.
روح للاعدادات حق الايفون وبعدها
General > Profile & Device Management
وتاكد ان الشهادة اتثبتت
بعد كذا في اعدادت الايفون روح لـ
General > About > Certificate Trust Settings
وتاكد انك مفعلها نفس اللي عندي بالصورة
الان كل شي تمام وجاهز للتجربة.
ملاحظة مهمة: بعد ما تخلص من تجاربك لا تنسى تشيل اعدادت البروكسي من الايفون.
خليها Off واعمل Save
راح اوقف هنا شوية لاني خارج من البيت.
نشوفكم بعد كم ساعة في الجزء الثاني والاهم ?
طيب نكمل الان الخطوات.
شغل تطبيق تشارلز على الماك واول شي تسويه تتاكد انك تقفل متابعة الريكويستات اللي طالعه من جهاز الماك، تجنبا للحوسة وحتى لا تتوقف بعض البرامج والخدمات عندك بالماك عن العمل.
تاكد انك شايل علامة الصح من Mac OS X Proxy
بعد كذا تاكد انك عامل اعدادات البروكسي في الايفون مثل ما شرحت في التغريدات السابقة.
خلينا نجرب اول شي على اي موقع نشغله.
ادخل من الايفون على موقع SoundCloud.com
وشغل اي مقطع صوتي تلاقيه قدامك
الان تاكد عندك في تطبيق تشارلز انك مختار Structure مثل الصورة. هذه طريقة عرض اسهل ترتب لك كل الريكويستات حسب الدومين.
اللي يهمنا هنا الان هو الدومين api.soundcloud.com
واللي محدد عليه بالصورة
لاحظ هذا الريكويست، عبارة عن GET ريكويست وفيه client_id خاص بموقع ساوندكلاود. اعتقد ان هذا الـ Key ما عليه اي قيود، يعني تقدر تستخدمه بس وانت سااااكت. (انا اخفيته تجنبًا لاي مشاكل لان سمعتي معاهم ****)
الان انسخ الرابط، وحطه بالمتصفح ولاحظ ايش بيطلع معاك.
هذا الرد اللي جاك من الـ API وهو عبارة عن JSON (احتمال عندك يكون تنسيقه مختلف لاني انا مستخدم اكستنشن ترتب الـJSON في السفاري)
شوف عندك الـ Key اللي اسمه http_mp3_128_url
هذا عبارة عن رابط مباشر لملف الصوت.
لو نسخت الرابط اللي هو الـ value لهذا الـkey وحطيته بالمتصفح، راح يشغل لك ملف الصوت وتقدر عن طريق السفاري تحمل الملف لو ضغطت عليه باليمين مثل الصورة.
لاحظ انه لو انك تبني تطبيق ممكن تستخدم هذا الرابط وتحمل الملف في التطبيق مباشرة!
الان قدرنا نجيب الـclient_id حق الساوندكلاود.. مممم طيب كيف ممكن نستخدمه؟
علشان تستخدمه عندك حلين:
١- تراقب التطبيق وتستخدم كل شي المزايا فيه وتحلل كل الريكويستات اللي طالعه منه وتفهمها وبعد كذا تقدر تستخدمها.
٢- اذا كان التطبيق عنده API مفتوح للمطورين.. خير وبركة، نروح نقراه
هذا رابط فيه ككل Resources الخاصة بالـAPI وشرح كيف تستخدمها.
لو بنعمل بحث على اسم اغنية مثلا، راح نستخدم /tracks
شوف الصورة وحاول تفهمها وبعدها نكمل.
developers.soundcloud.com
الان بعد ما شفت الصورة، لاحظ في الصورة فيه رابط يوضح لك كيف تستخدم الريسورس اللي هو tracks
"api.soundcloud.com"
ملاحظة: تقدر تسجل في الموقع كمطور وتاخذ client_id خاص فيك. لكن فيه قيود من حيث عدد الطلبات في الساعه او اليوم (ماني متذكر) بالاضافة، حاليا التسجيل موقف ?
احنا حاولنا نلعب شوية في الموقع ونشوف الريكويستات اللي طالعه من الجوال للموقع وقدرنا نوصل للـ client_id حقهم اللي هم يستخدموه و ماعليه قيود.
الان لو تلاحظ في شرح الـAPI فيه باراميتر اسمه q وبجنبه وصف يقول ادخل النص اللي تبحث عنه.
فراح نعدل على الرابط ونضيف اللي نبغاه...
هذا الرابط بعد التعديل
"api.soundcloud.com"
لاحظ اني ببحث عن كلمة better now وا بين الكلمتين %20 وهذه لها علاقه بالـ URL Encoding (انا ما حطيت الـclient_id كامل تجنبا للمشاكل ?).
حط الرابط بالمتصفح واضغط انتررررر، بتلاقي نتائج مثل الصورة
طلعت انا نتائج البحث كلها، والان نختار الملف المناسب الي نبغاه.
حاليا اللي يهمنا هو اننا ناخذ الـ id الخاص بملف الصوت اللي نبغاه او رابط الـ Stream.
ناخذ رابط الستريم ونضيف عليه الـ client_id اللي اخذناه
وراح يصير بهذا الشكل
"api.soundcloud.com"
لاحظ انك لو دخلت عالرابط من المتصفح، راح يشتغل معاكلف الصوت من غير مشاكل.
لكن فعليا اللي بيصير هو ان السيرفر راح يرجع لك رسالة خطا 302 Moved Temporarily
الصورة السابقة، انا مستخدم Paw واللي هو عبارة عن API Tool وسبق انس تكلمت عنه في هذه التغريدات
لو بتنادي هذا الـAPI عن طريق التطبيق وما تعاملت مع هذا الانواع من الاخطاء، ما راح تقدر توصل لملف الصوت. الطريقة اللي تحل فيها او تتعامل فيها مع هذا الخطأ شي راجع لك. لكن، احنا وصلنا اول لـ API يجيب لما روابط التحميل للملف. ولعلمك هذا الـAPI ماهو موجود بموقع ساونكلاود!!!
يعني وصلنا لـAPI سري للغاية ?
لاحظ ان الفرق بين رابط الستريم والرابط اللي وصلنا له هو حرف الـs فقط!
streams?client_id
و
stream?client_id
الفرق بسيط لكن ما كنت راح تعرف عن هذا الـAPI لو ما طلعناه بشوية لف ودوران!
هيا خلينا نستخدم الـAPI اللي اخذناه اول (السري للغاية ?) ونحط الـid الخاص بملف الصوت اللي بحثنا عنه واخترناه واللي هو 434757993
وبالتالي بيصير عندنا الرابط هذا
"api.soundcloud.com"
وبتطلع معانا هذه النتائج واللي هي روابط مباشرة لملف الصوت ??
كذا عرفنا كيف نستخدم تطبيق تشارلز على الماك ونخليه بروكسي بحيث يتصل عن طريقه الايفون وبالتالي نقدر نعرف كل الريكويستات اللي طالعه من الايفون.
طبعا في الايفون، لو فتحنا تطبيق يستخدم API، راح نقدر نعرف كل الريكويستات اللي طالعه من التطبيق الا في حالة واحدة!
واللي هي ان التطبيق يستخدم طريقه اسمها SSL Pinning بحيث يطابق الـSSL Certificate اللي موجودة عنده بالشهادة الموجودة عالسيرفر في بداية مرحلة الاتصال بينه وبين السيرفر. ولو ما تطابقت الشهادة، ما راح يكمل الريكويست. يعني بيقفل الاتصال.
تنويه، اكيد في اخطاء املائية وحمل غير منطقية بسبب اني اكتب واعدل وما اراجع ?
بالنسبة للروابط وبحكم ان تويتر ما يظهرها كاملة، اصغط عليه وانسخها والصقها في المتصفح او اي Text Editor او في النوتس علشان تشوفها بشكل اوضح

جاري تحميل الاقتراحات...