VK روبوت على ركبته ، أو كيفية إرضاء الناس في 14 فبراير

بالطبع ، كل واحد منا يحب الهدايا ، ولكن الأهم من ذلك كله أننا نحب الرغبات المصاحبة لها. وحتى وقت قريب ، لم تتح لنا الفرصة لمفاجأة شخص ما بكلمات دافئة حتى تتبادر الفكرة إلى الذهن: ماذا لو منحنا الناس الفرصة لتبادل الأحبة (على أنفهم في 14 فبراير) دون ترك إطار العمل المعتاد الاتصالات - غرفة دردشة الشبكة الاجتماعية؟

كلمة لكلمة ، وهنا - خطة عمل جاهزة لخلق جو من عطلة يوم عيد الحب! هل سنجعل الناس سعداء؟


لفكرة القمر!


بالطبع ، في المقام الأول كان من الضروري وضع خطة عمل ووصف الفكرة. نظرًا لحقيقة أن الناس أصبحوا أكثر خجلًا ، ولم يكونوا مستعدين دائمًا للثقة في أي شخص ، فقد كان الاختيار يكمن في كتابة روبوت عصري ومناسب لـ VK ، الذي يتمتع بواجهة مألوفة ، وسيكون دائمًا في متناول اليد ، وسيتم إخفاء هوية الرسائل في كود البرنامج.
لسوء الحظ ، بالإضافة إلى جميع المزايا المذكورة أعلاه ، لدى المجتمعات عيبان: نطاق ترددي منخفض (عدد الرسائل في الثانية) وفرض حظر على بدء حوار مع مستخدم عشوائي (يجب أن يوافق المستخدم أولاً وبشكل صريح على استلام الرسائل نيابة عن المجتمع).

لذلك ، لدينا مستخدم مستعد لإرسال بطاقة عيد الحب إلى صديقه الحميم والمستلم والوسيط في شكل روبوت الدردشة. نظام التفاعل بسيط ، يجب على الروبوت: عرض إرسال ، التعرف على المستلم ، حفظ حتى 14 فبراير ، ثم توصيل ، تكرار.

لكن هذا ، بالطبع ، لم يكن كافيًا للخيال الشنيع للعقل ، ومن أجل زيادة نشاط ومشاركة الجمهور ، تم التفكير في مخطط لتفاعل آخر ، مما يسمح للناس بالتعرف داخل النظام ، وإرسال رسائل إلى أشخاص عشوائيين. يمكن تقدير "الأحبة العشوائية" هذه ، وإذا كانت الأحبة لشخصين مثل بعضهم البعض ، فنحن نمنحهم الفرصة للدردشة.

إخلاء المسؤولية


تم إنشاء هذا المشروع فقط عن طريق الحماس من قبل شخصين ، وهو مبرمج غير متعلم (أنا) وملهم أيديولوجي (Stepan sadfun Popov) ، وليس له هدف تعليمك شيئًا ما (على الرغم من أنه يمكن أن يساعدك على فهم جوهر الكون) ، ما عليك إلا أن تروي قصة مثيرة للاهتمام عن الخلق واتبع المسار من فكرة إلى تطبيق ساذج.



تعلم التحدث مع VK


بعد الانتقال إلى 3-4 مكتبات مختلفة بناءً على طلب "NodeJS VK API" ، أدركت أنه لا توجد مكتبات بسيطة وعملية تسمح لنا باستخدام الوعود ، وكذلك العمل من خلال التنفيذ. تذكر واحدة من المشاكل المذكورة أعلاه؟ نعم ، إن تنفيذ الطلبات إلى فكونتاكتي ليس مباشرة ، ولكن في دفعات 25 يسمح لك بزيادة الإنتاجية بشكل كبير .


القدرة المقارنة للطرق المختلفة لطلبات فكونتاكتي

لذلك ، تقرر كتابة شيء خاص به ، وهو حل موثوق به وليس عكازًا جدًا ، استنادًا إلى مكتبة جلب العقدة .

لكي لا أعطي كل الكود هنا ، سأصف ببساطة منطق العمل.

نظرًا لأن الطلبات الواردة من البرنامج يجب تعبئتها في تنفيذ واحد ، يتم جمعها في قائمة انتظار LIFO ، ثم يتم إرسالها إذا:

  • المكالمات 25 أو أكثر (الحد الأقصى للتنفيذ)
  • لقد مر وقت كافٍ منذ الإرسال الأخير ، بما لا يقل عن 50 مللي ثانية ، ولكن ليس أكثر من 150 (بحيث تتحرك قائمة الانتظار ، على الرغم من صغر حجمها)

يتم تصنيف الطلبات من قائمة الانتظار إلى رمز VK Script ، والتي (في هذا التطبيق) تبدو كما يلي:

var returnables = []; returnables[0] = API.messages.send({"message": ", !", "peer_id": 1, "random_id": 561427}); returnables[1] = API.users.get({"user_ids": 1, "fields": "sex"}); return returnables; 

بعد تنفيذ التعليمات البرمجية بواسطة طلب إلى VK ، ترجع نتيجة كل طلب (بواسطة الفهارس القابلة للإرجاع ) إلى رد الاتصال الخاص به ، وهو ملفوف بشكل جميل في وعد. كفاءة النهج ساحقة - فكلما زاد عدد المستخدمين (وبالتالي ، كلما زادت طلبات فكونتاكتي للإرسال) ، قلّ التأخير في الاستجابة. للحفاظ على الحد الأقصى تحت السيطرة ، يحتوي نظام الإرسال على عداد يوضح عدد الطلبات المتبقية لهذه الثانية ، مما يتيح لك معالجة زيادة سريعة في عدد الزوار.

تعلم الاستماع إلى VK


هناك طريقتان لتلقي الإشعارات حول الأحداث من فكونتاكتي : طلبات Longpoll وخادم رد الاتصال . الخادم الخاص بك مناسب لأنه لا يتطلب إيماءات خاصة للاستخدام ، ويسمح لك أيضًا باستلام إخطارات لم يرد عليها (على سبيل المثال ، عند إعادة تشغيل الخادم). يمكن كتابة مثل هذا الخادم في عدة أسطر باستخدام فئة http.Server الأصلية.

كل هذا يخلق نظامًا بيئيًا مثاليًا لمنطق البرنامج ، وهو مناسب للاستخدام.

كل هذا ينتهي


نظرًا لأن المستخدم حر في فعل أي شيء في الدردشة ، ولا يمكننا إيقافه ، نحتاج إلى قصره على مبلغ معقول. يقوم جهاز الحالة بعمل رائع في القيام بذلك ، حيث يقوم بتعيين كل عملية انتقال ممكنة داخل النظام ، واستخدام الأزرار (معلمة لوحة المفاتيح في messages.send) سيجعل استخدام الروبوت بسيطًا مثل لمسة واحدة على الشاشة.

هنا تفاعل المستخدم مع الروبوت:


كل هذا يتحول إلى مجموعة من الحالات ("القائمة الرئيسية" ، "مدخلات عيد الحب" وما إلى ذلك) ، التحولات التي يتم تعيينها ونقلها في أزرار ، أو معروفة في البداية ولا تتغير.


بالمناسبة ، عن الأزرار. التدرج اللوني الخاص بهم غير ثابت ( 4 ألوان لجميع المناسبات) ، ولكن الأزرار هي التي تجعل من الممكن تقليل عدد أخطاء المستخدم. على أساسها ، يمكنك بناء أي نظام غير خطي على الإطلاق ، ولهذا السبب يتم استخدامها في كل مكان. وفي هذا المشروع أيضا.

لكن عليك أن تفهم: إذا كنت تستهدف جمهورًا كبيرًا ، فيجب أن تفكر في طريقة أخرى للتفاعل ، لأن شخصًا ما قد يكون لديه تطبيق قديم ( VK for iPad ، على سبيل المثال ، لم يتم تحديثه لفترة طويلة جدًا ، فلن أكذب ، لكن يبدو أنه أكثر من عام ، ودعم لوحة المفاتيح ليست هناك). ويحدث (نعم ، يحدث ، لقد راجعت) أن الأشخاص ، الذين لم يدركوا أنه يمكن النقر فوق الأزرار ، ما عليك سوى إعادة كتابة محتوياتها (ومن ثم ، لا يتم نقل معلمة زر الحمولة ، وبالطبع ، يمكن كسر كل شيء).

تجدر الإشارة إلى أنه ليس كل شيء يحدث بسلاسة كما هو موضح في الرسم البياني ، وأحيانًا تحدث حالات غريبة. على سبيل المثال ، قام نظام تحديد ارتباط VKontakte بمعالجة المستخدمين الذين بدأت ارتباطاتهم القصيرة بمعرف بشكل غير صحيح وقطعه. لا يمكن وصف مفاجأة الأشخاص الذين قابلوا هذا الخطأ ، لأنهم كتبوا عيد الحب ، ولكن اتضح أن أوليجكا.
ما olezhka ؟؟؟

الحوادث ليست عرضية


لذا ، إذا كان كل شيء واضحًا مع الأحبة العادية ، فهناك متلقي ومُرسِل ، فكيف يمكن تقليل اثنين من الغرباء؟ تحتاج إلى تبادل الأحبة الخاصة بهم ، وإذا أحب الناس أحبة بعضهم البعض ، فيجب تقديمهم! ومن هنا ، صيغة الحب!

على الرغم من أن هذا يبدو مثيرًا للشفقة ، إلا أنه ينجح ، ويصبح من المثير للاهتمام أن يعمل الأشخاص مع الروبوت - سيحصلون على استجابة إيجابية إذا كان هناك شخص واحد على الأقل (والذي ، بالطبع ، سيعتني الروبوت).

يتبع هذا إضافة كبيرة - كلما زاد عدد الأشخاص الذين يغتنمون هذه الفرصة ، زادت فرصهم في التعرف على بعضهم البعض ، وبالتالي ، مثل هذه اللعبة ، يبقي الشخص في دردشة. تجدر الإشارة إلى أن متوسط ​​جلسة المستخدم هو 7 دقائق تقريبًا ، ولكن هناك احتمال لتضييق نطاق الشخص من 10 إلى 15 من أجل هذه الميزة فقط.

لقد فرض توزيع الرسائل ذاته نظامًا منفصلاً ، نظرًا لوجود العديد من الخيارات لاستخدام هذا الروبوت ، فقد يغفل المستخدم شيئًا ما ، وسيذكره الروبوت بهذا.


من المثير للاهتمام كيف تم حل المشكلة الثانية ، مع عدم قدرة المجتمع على بدء حوار مع المستخدم أولاً: الآن يتم حل هذه المشكلة عن طريق هذه الرسالة.
لكن لدي شرط! لكي يتلقى المستلم عيد الحب الخاص بك ، يجب عليه أيضًا أن يكتب إلي. مهمتك الآن هي إقناعه أن يكتب لي شيئًا ما. يتم ذلك بحيث لا يكون لديك خوف من التحدث إليه!
بشكل عام ، التقليدية "ليس خطأ ، ولكن ميزة!"

الألعاب النارية في النهاية


هذا كل شئ! إذا لم تأخذ في الاعتبار بعض الصعوبات في فهم منطق واجهة برمجة تطبيقات VK ، وكذلك مع تأكيد الحساب مع أحد مقدمي الخدمات ، فقد سارت الأمور على نحو سلس.


مثال على الدردشة مع روبوت

يعمل الروبوت وسوف يسعد الناس بالحب ، مما يجعلهم سعداء. يتم ذلك لمساعدة الناس على أن يكونوا لطيفًا مع بعضهم البعض. يمكنك تقييم كل هذا بنفسك في مجتمع Valentinych - vk.com/verylovebot ، إذا كنت ترغب في ذلك. شكرا لاهتمامكم!

Source: https://habr.com/ru/post/ar439218/


All Articles