تتم كتابة العديد من الأسطر حول دمج Telegram و 1 C. ولكن لم أر في أي مكان الإرشادات الكاملة لتثبيت وتكوين webhooks. سأحاول كتابتها.لكل هذا نحتاجه (أو سيكون من الأصح أن نقول ما استخدمته):- أباتشي 2.2.24
- OpenSSL (مرفق مع تثبيت Apache)
- 1C (مع وحدات خادم الويب)
- المجال الخاص
- روبوت تم إنشاؤه في Telegram (لن أصف إنشاءه ، لأنه تافه للغاية)
من المفترض أن جميع البرامج التي قمت بتثبيتها.لذا ، لنبدأ بالحصول على شهادة. افتح سطر الأوامر وقم بتنفيذ التعليمات البرمجية التالية:openssl req -newkey rsa:2048 -sha256 -nodes -keyout YOURPRIVATE.key -x509 -days 365 -out YOURPUBLIC.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"
حيث:YOURPRIVATE.key هو المفتاح الخاص للشهادة. سيتم استخدامه فيapache YOURPUBLIC.pem - المفتاح العام للشهادة. سيتم استخدامه عند تسجيل الردالتلقائي على الويب YOURDOMAIN.EXAMPLE - عنوان نطاقك باستخدام الرد الإلكتروني على الويب. يجب أن يتطابق مع عنوان webhook !!!بعد تنفيذ هذا الرمز ، ستظهر ملفات المفاتيح في مجلد openssl (لديّ "C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ bin").قمت بنسخها إلى مجلد أباتشي كونف.دعنا ننتقل إلى تكوين أباتشي.لقد رأيت العديد من الطرق المختلفة. التالي عملت بالنسبة لي:تمت إضافة الأسطر التالية إلى httpd.conf:Listen 443
لكي يستمع أباتشي للمنفذ 443.تحتوي كتلة <IfModule ssl_module> على النموذج التالي:<IfModule ssl_module>
SSLMutex default
SSLSessionCache none
</IfModule>
في النهاية ، تتم إضافة الأسطر حيث أشير إلى مسار الشهادة:SSLEngine On
SSLCertificateFile conf/YOURPUBLIC.pem
SSLCertificateKeyFile conf/YOURPRIVATE.key
وتفكيك الخط:LoadModule ssl_module modules/mod_ssl.so
في التكوين نقوم بإنشاء خدمة HTTP. سيكون هو الذي سيجيب على البرقية ويعالج طلبات الاستئناف.في حالتي ، يتم تحديد المعلمات التالية:الاسم: TGWebhuk RootURL: webhookإعادة استخدام الجلسة: لا تستخدم (لم أعمل مع الوضع التلقائي)مدى الحياة: 20أنماط عنوان URL: تم إنشاء أي قالب بطريقتين:

معالجات GET وطريقة POST إفتراضي. سأضيف ما يلي إلى معالج POST ، فقط للتحقق من الاتصال: POST()
("");
= HTTP(200);
;
&
()
= " ";
= "";
= "api.telegram.org";
= "bot" + + "/sendMessage?chat_id=" + ((, "=; =; =."), ".", "") + "&text=" + ;
= HTTP(,443,,,,, OpenSSL());
= HTTP();
= .();
يبقى نشر قاعدة البيانات وإرفاق webhook.يتم النشر كما هو الحال دائمًا ، ما عليك سوى إضافة علامات اختيار إلى نشر خدمة HTTP:
كخطوة أخيرة ، سنقوم بإرفاق 1C إلى البرقية. لهذا ، استخدمت صفحة html بسيطة تحتوي على الكود التالي:<html>
<body>
<form action="https://api.telegram.org/bot<>/setwebhook" method="post" enctype="multipart/form-data">
Select Certificate to upload:
<input type="file" name="certificate" id="fileToUpload">
URL: <input type="text" name="url" value="https://<YOURWEBSITE>/<YOUR_PHP_URL>"><br>
<input type="submit" value="Upload Certificate" name="submit">
</form>
</body>
</html>
في النموذج ، ما عليك سوى تحديد المفتاح العام وإدخال المسار الكامل لخدمة http الخاصة بنا. أذكرك أن المسار الكامل للخدمة سيبدو كما يلي:YourDomain / BaseName / hs / ServiceName / v1
الرجاء عدم ركلة الكود ، فبعض الأشياء يتم عمدا بواسطة كود ثابت ، لأن كل هذا تم لأغراض التوضيح فقط.تم كتابة المنشور بسبب لم أجد مثالاً عمليًا واحدًا للعمل مع الخطافات على الموقع ، باستثناء مُنشئ Telegram bot. لكنها مدفوعة ، وربما لا يحتاجها الجميع في هذا الشكل.يحتوي الأرشيف على تثبيت Apache 2.2.24 مع Openssl (لسبب ما ، استغرق الأمر مني وقتًا طويلاً للعثور عليه) ، ملف html لتسجيل ربط الويب ، ملف تكوين Apache وتكوين cf مع خدمة http ومثال على إرسال رسالة اختبار. إنه اختياري للتنزيل لأنه كل المحتوى موجود في المقالة.