Maraming linya ang naisulat tungkol sa pagsasama ng Telegram at 1C. Ngunit wala akong nakitang kumpletong mga tagubilin para sa pag-install at pag-configure ng mga webhook. Susubukan kong isulat ito.
Para sa lahat ng ito kailangan natin (o mas tamang sabihin kung ano ang ginamit ko):
- Apache 2.2.24
- OpenSSL (kasama sa pag-install ng Apache)
- 1C (may mga modyul) web server)
- Ang iyong sariling domain
- Nilikha ang bot sa Telegram (Hindi ko ilalarawan ang paglikha nito, dahil ito ay medyo walang halaga)
Ipinapalagay na na-install mo na ang lahat ng software.
Kaya, magsimula tayo sa pagkuha ng isang sertipiko. Buksan ang command line at isagawa ang sumusunod na code:
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"Saan:
Ang YOURPRIVATE.key ay ang pribadong key ng certificate. Gagamitin sa Apache
YOURPUBLIC.pem ay ang pampublikong susi ng certificate. Gagamitin kapag nagrerehistro ng webhook
YOURDOMAIN.EXAMPLE - ang address ng iyong domain na may webhook. Dapat itong tumugma sa webhook address!!!
Pagkatapos i-execute ang code na ito, lalabas ang mga key file sa openssl folder (para sa akin ito ay “C: Program FilesApache Software FoundationApache2.2bin”).
Kinopya ko sila sa folder ng Apache conf.
Magpatuloy tayo sa pag-set up ng Apache.
Nakita ko ang maraming iba't ibang paraan. Ang mga sumusunod ay nagtrabaho para sa akin:
Ang mga sumusunod na linya ay naidagdag sa httpd.conf:
Listen 443 para "makinig" ang Apache sa port 443.
I-block nabawasan sa sumusunod na anyo:
<IfModule ssl_module>
SSLMutex default
SSLSessionCache none
</IfModule>Sa pinakadulo may mga idinagdag na linya kung saan ipinapahiwatig ko ang landas patungo sa sertipiko:
SSLEngine On
SSLCertificateFile conf/YOURPUBLIC.pem
SSLCertificateKeyFile conf/YOURPRIVATE.keyAt alisin sa komento ang linya:
LoadModule ssl_module modules/mod_ssl.so Sa pagsasaayos, lumikha kami ng isang serbisyo ng HTTP. Siya ang tutugon sa telegrama at magpoproseso ng kanyang mga kahilingan.
Sa aking kaso, ang mga sumusunod na parameter ay tinukoy:
Pangalan: TGWebhook
RootURL: webhook
Muling paggamit ng mga session: Huwag gamitin (sa awtomatikong mode hindi ito gumana para sa akin)
Tagal ng buhay: 20
Mga template ng URL: gumawa ng template na "Anumang" na may dalawang pamamaraan: GET at POST



Ang mga tagapangasiwa ng pamamaraan ay nilikha bilang default. Idagdag ko ang sumusunod sa POST handler, para lang suriin ang koneksyon:
Функция ЛюбойPOST(Запрос)
ВыслатьТестовоеСообщение(""); //chat_id
Ответ = Новый HTTPСервисОтвет(200);
Возврат Ответ;
КонецФункции
&НаСервере
Процедура ВыслатьТестовоеСообщение(Чат)
Сообщение = "Тестовое сообщение";
Токен = "";//Ваш токен telegram
Сервер = "api.telegram.org";
Ресурс = "bot" + Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(Чат, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Сообщение;
Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);
КонецПроцедурыAng natitira na lang ay i-publish ang database at mag-attach ng webhook.
Ginagawa ang pag-publish gaya ng dati, kailangan mo lang magdagdag ng mga checkbox sa mga publication ng serbisyo ng HTTP:

Ang huling hakbang ay i-link ang aming 1C sa Telegram. Para dito gumamit ako ng isang simpleng pahina ng html na may sumusunod na code:
<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>Sa form, piliin lamang ang pampublikong key at ilagay ang buong landas sa aming serbisyo sa http. Ipaalala ko sa iyo na ang buong landas sa serbisyo ay magiging ganito:
Mangyaring huwag sipain ang code, ang ilang mga bagay ay sadyang naka-hardcode, dahil... ang lahat ng ito ay ginawa para lamang sa mga layunin ng pagpapakita.
Ang publikasyon ay isinulat dahil Wala akong nakitang isang gumaganang halimbawa ng pagtatrabaho sa mga webhook sa site, maliban sa Telegram Bot Constructor. Ngunit ito ay binabayaran at marahil hindi lahat ay nangangailangan nito sa form na ito.
Naglalaman ang archive ng pag-install ng Apache 2.2.24 kasama ng Openssl (para sa ilang kadahilanan ay natagalan ako upang mahanap ito), isang html file para sa pagrehistro ng isang webhook, isang Apache configuration file at cf configuration na may isang serbisyo ng http at isang halimbawa ng pagpapadala ng test message. Hindi kinakailangan ang pag-download, dahil Ang lahat ng nilalaman ay nasa artikulo.
Pinagmulan: www.habr.com
