Ahmed Ash 👨‍💻
Ahmed Ash 👨‍💻

@ahmedash95

15 تغريدة 145 قراءة May 28, 2020
(ثريد) اتسالت كذا مره عن بوت زي @rattibha ازاي بيشتغل. ف هشرح في خطوات ازاي تستخدم Twitter API علشان تقرا الthreads لما يجي mention علي الحساب
١ - بشكل بسيط السيناريو كالاتي
١ - هنسمع اي تغريده مثل "@tarteeb انشرها"
٢ - عن طريق stream api هيوصلنا منشن للحساب و بعض البيانات منها id التغريده الاساسيه
٣ - باستخدام twitter api هنجيب التغريده و باقي الثريد و نجمعهم في مكان واحد
ثم
٤ - هنسجلهم في قاعدة بيانات / ملف / اي حاجه
٥ - تصميم صفحه لعرض التغريده مجمعه و منها نقدر نرد علي التغريده برابط الصفحه زي رتبها كدا
٢ - هنستخدم الرابط ده علشان نعمل developer app علي تويتر و منها نقدر نستخدم twitter api
developer.twitter.com
٣ - اولاً احنا هنحتاج نستخدم Twitter stream API علشان نسمع الtweets اللي هيحصل فيها منشن لاسم الاكاونت ثم هنستخدم Twitter API علشان نقرا التويته الاساسيه و نقرا الثريد كامل.
هنستخدم
مكتبه github.com
و مكتبه github.com
٣.١ بكل بساطه create بتستقبل ال twitter credentials ثم whenHears بنسمع منها اي منشن يحصل لحساب باسم TarteebTest و دي ممكن تغيرها لاي حساب هنستقبل عليه المنشنز.
و بعدين بنستخدم داله handle و دي هنكتبها دلوقتي علشان تستقبل التغريده الرئيسيه و اسم كاتب التغريده و نجمع منها الثريد.
٤. بعد كدا هنعمل داله handle علشان نقرا بيانات التغريده الرئيسيه و بطريقه تانيه هنقرا باقي محتوي التغريده (الثريد). ثم هنسجل البيانات دي في ملف (وممكن نسجلها في قاعدة بيانات)
٤- نبدا الشرح.
- هنعمل array علشان نسجل فيها التغريده و باقي الثريد
- هنجيب بيانات التغريده من twitter api و هستخدم tweet_mode => extended علشان تويتر يبعت ال full text مش جزء منه
٥ - لان تويتر مش بيسمح باننا نشوف الردود علي اي تغريده. و بردو مش بيسمح اننا نقرا اي ثريد. هنعملها باسلوب تاني. وهي اننا هنجيب كل التغريدات اللي المستخدم كتبها بعد التويته الاساسيه اللي معانا في الخطوه رقم (٤) و بكدا هنقدر نوصل للتغريدات اللي هي جزء من الthread ;)
٦ - و كدا يكون معانا كل التغريدات في $list وممكن نسجلها في قاعدة البيانات. لكن في الشرح ده هنكتفي اننا نسجلها في ملف
٧ - و بكدا نكون خلصنا اهم جزء في فكره رتبها. و بعد كدا ممكن نعمل صفحه يتم فيها عرض التغريدات حسب ال tweet id و نبعت الرابط للمستخدم اللي عمل mention عن طريق twitter api
٨ - نختتم بنصائح مهمه علشان تنفذ الفكره مظبوط
لو فيه مستخدمين كتير عملو منشن في نفس الوقت هيتم الغاء بعض الطلبات بسبب مده الانتظار في تنفيذ كل طلب.
الحل: اننا نستخدم queuing system زي redis او rabbitMQ ونبعتله بيانات التويت و بعدين نسحب التغريده و نبعتها لداله handle
٨.١ - من المهم اننا في داله whenHears اننا نستخدم كلمات معينه نتاكد بيها قبل التنفيد زي "انشر" "جمع" "رتب من فضلك" و هكذا بدلاً من تنفيد العمليات مع كل mention.
٨.٢ استخدم نظام Cache لتسجيل التغريدات اللتي تم جمعها مسبقاً عن طريق tweet id بحيث ان لو اكتر من مستخدم طلب ترتيب نفس التغريده نرسله الرابط مباشره بدل من تنفيذ عمليه الترتيب كل مره
٩ - ده رابط الكود علي github وتقدرو تستخدموه :)
github.com

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