بالطبع ، كل واحد منا يحب الهدايا ، ولكن الأهم من ذلك كله أننا نحب الرغبات المصاحبة لها. وحتى وقت قريب ، لم تتح لنا الفرصة لمفاجأة شخص ما بكلمات دافئة حتى تتبادر الفكرة إلى الذهن: ماذا لو منحنا الناس الفرصة لتبادل الأحبة (على أنفهم في 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 ، إذا كنت ترغب في ذلك. شكرا لاهتمامكم!