أول روبوت PHP لفكونتاكتي

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

أولاً نحتاج إلى إنشاء مجتمع. أعتقد أن الجميع يمكنهم التعامل مع هذا.

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

صورة

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

صورة

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

صورة

سنكتب الشفرة في PHP ، حتى تتمكن من تنزيل كود Visual Studio أو PHPStorm. من حيث المبدأ ، يمكن كتابة الكود في المفكرة ، لكنه لن يكون مناسبًا. بعد الرمز ، سننتقل إلى إعداد المجموعة.

لذلك ، بالنسبة للمبتدئين ، نحتاج إلى الحصول على معلومات حول الرسالة الواردة وترجمتها من تنسيق JSON إلى صيغة مفهومة لـ PHP.

<?php $data = json_decode(file_get_contents('php://input')); ?> 

في متغير البيانات ، لدينا الآن صفيف به رسالة ومعرف مستخدم ومعرف دردشة.
"ما نوع" json_decode (file_get_contents ('php: // input')) "، أنت تسأل.

لنبدأ من هذه اللحظة:

 file_get_contents('php://input') 

بعبارات بسيطة ، نطلب من البرنامج النصي ما جاء في مدخلاتنا ، أي الطلب الذي أرسلته VC. أدناه مثال على مثل هذا الطلب.

 {"type":"message_new","object":{"date":1568464037,"from_id":450829055,"id":5400,"out":0,"peer_id":450829055,"text":" .","conversation_message_id":1478,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},"group_id":171524656} 

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

حسنًا ، "json_decode ()" هي وظيفة تترجم JSON أعلاه إلى صفيف يمكن لـ PHP أن يعمل بها.

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

 <?php $data = json_decode(file_get_contents('php://input')); switch ($data->type) { case 'confirmation': echo $confirmation_token; break; case 'message_new': $message_text = $data -> object -> text; $message_text = $data -> object -> peer_id; if ($message_text == ""){ // -  } if ($message_text == ""){ // -  } echo 'ok'; break; } ?> 

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

 <?php function vk_msg_send($peer_id,$text){ $request_params = array( 'message' => $text, 'peer_id' => $peer_id, 'access_token' => "TOKEN", 'v' => '5.87' ); $get_params = http_build_query($request_params); file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); } ?> 

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

الآن قم بتوصيل هذه القطع من التعليمات البرمجية وكتابة ردود فعل الروبوت في رسالة معينة.

 <?php $confirmation_token = 'CONF_TOKEN' function vk_msg_send($peer_id,$text){ $request_params = array( 'message' => $text, 'peer_id' => $peer_id, 'access_token' => "TOKEN", 'v' => '5.87' ); $get_params = http_build_query($request_params); file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); } $data = json_decode(file_get_contents('php://input')); switch ($data->type) { case 'confirmation': echo $confirmation_token; break; case 'message_new': $message_text = $data -> object -> text; $chat_id = $data -> object -> peer_id; if ($message_text == ""){ vk_msg_send($chat_id, ",  ,    ."); } if ($message_text == ""){ vk_msg_send($chat_id, ".    - ,     ,    ."); } echo 'ok'; break; } ?> 

"حسنًا ، لماذا يتعين علينا كتابة كلمة" موافق "بعد إرسال الرسالة؟"

نظرًا لأننا سنستخدم طريقة التحديث المسماة Call Back API ، أي أن VK ستتحدث عن رسائل جديدة إلينا ، نحتاج أن نقول أننا سمعناها ، وإلا فسيتكرر ذلك لنا عدة مرات.

الآن دعنا ننتقل إلى إعداد المجموعة.

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

صورة

من نفس القسم ، نأخذ الخط الذي يجب أن يعرضه الخادم ، ونستبدله في متغير_t_token.

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

ثم نختار ما سيتم إبلاغنا به الأحداث في المجتمع من قبل فكونتاكتي. نحن بحاجة فقط الرسائل الواردة.

صورة

بعد ذلك ، نؤكد عنوان الخادم ، وبوتنا الأول جاهز للاستخدام.

صورة

نظرًا لأن هذا هو أول منشور لي عن حبري ، فأنا أريد الحصول على تعليقات على المقال وتحسين فقط.

شكرا للقراءة.

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


All Articles