Mnogo je redaka napisano o integraciji Telegrama i 1C. Ali nigdje nisam vidio potpune upute za instaliranje i konfiguriranje webhookova. Pokušat ću to napisati.
Za sve ovo nam je potrebno (ili bi bilo ispravnije reći ono što sam ja koristio):
- Apache 2.2.24
- OpenSSL (uključen u instalaciju Apachea)
- 1C (с модулями web poslužitelj)
- Vlastita domena
- Kreiran bot u Telegramu (neću opisivati njegovu izradu, jer je prilično trivijalan)
Pretpostavlja se da imate instaliran sav softver.
Dakle, počnimo s dobivanjem certifikata. Otvorite naredbeni redak i izvršite sljedeći kod:
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"Gdje:
YOURPRIVATE.key je privatni ključ certifikata. Koristit će se u Apacheu
YOURPUBLIC.pem je javni ključ certifikata. Koristit će se prilikom registracije webdojavnika
YOURDOMAIN.EXAMPLE - adresa vaše domene s webhookom. Mora odgovarati adresi webhooka!!!
Nakon izvršavanja ovog koda, ključne datoteke će se pojaviti u mapi openssl (za mene je to "C:Program FilesApache Software FoundationApache2.2bin").
Kopirao sam ih u mapu Apache conf.
Prijeđimo na postavljanje Apachea.
Vidio sam mnogo različitih načina. Meni je djelovalo sljedeće:
Sljedeći redovi dodani su u httpd.conf:
Listen 443 kako bi Apache "slušao" port 443.
Blok sveo na sljedeći oblik:
<IfModule ssl_module>
SSLMutex default
SSLSessionCache none
</IfModule>Na samom kraju dodani su redovi u kojima označavam put do certifikata:
SSLEngine On
SSLCertificateFile conf/YOURPUBLIC.pem
SSLCertificateKeyFile conf/YOURPRIVATE.keyI odkomentirajte redak:
LoadModule ssl_module modules/mod_ssl.so U konfiguraciji stvaramo HTTP uslugu. On je taj koji će odgovoriti na telegram i obraditi njegove zahtjeve.
U mom slučaju navedeni su sljedeći parametri:
Ime: TGWebhook
RootURL: web-dojavnik
Ponovno korištenje sesija: Nemojte koristiti (s automatskim načinom rada nije mi radio)
Životni vijek: 20
Predlošci URL-a: kreirali su predložak "Bilo koji" s dvije metode: GET i POST



Rukovatelji metodama kreiraju se prema zadanim postavkama. Dodat ću sljedeće u POST rukovatelj, samo da provjerim vezu:
Функция ЛюбойPOST(Запрос)
ВыслатьТестовоеСообщение(""); //chat_id
Ответ = Новый HTTPСервисОтвет(200);
Возврат Ответ;
КонецФункции
&НаСервере
Процедура ВыслатьТестовоеСообщение(Чат)
Сообщение = "Тестовое сообщение";
Токен = "";//Ваш токен telegram
Сервер = "api.telegram.org";
Ресурс = "bot" + Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(Чат, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Сообщение;
Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);
КонецПроцедурыSve što preostaje je objaviti bazu podataka i priložiti webhook.
Objavljivanje se vrši kao i uvijek, samo trebate dodati potvrdne okvire u publikacije HTTP usluge:

Posljednji korak je povezivanje našeg 1C s Telegramom. Za ovo sam koristio jednostavnu html stranicu sa sljedećim kodom:
<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>U obrascu jednostavno odaberite javni ključ i unesite puni put do naše http usluge. Dopustite mi da vas podsjetim da će cijeli put do usluge izgledati ovako:
Molimo vas da ne izbacujete kod, neke stvari su namjerno ukodirane, jer... ovo je sve učinjeno isključivo u svrhu demonstracije.
Publikacija je napisana jer Na web mjestu nisam pronašao niti jedan radni primjer rada s webhookovima, osim Telegram Bot Constructor-a. Ali plaća se i možda ne treba svima u ovom obliku.
Arhiva sadrži instalaciju Apache 2.2.24 zajedno s Openssl-om (iz nekog razloga dugo mi je trebalo da ga pronađem), html datoteku za registraciju webhooka, Apache konfiguracijsku datoteku i cf konfiguraciju s http uslugom i primjer slanja probne poruke. Preuzimanje nije potrebno, jer Sav sadržaj je u članku.
Izvor: www.habr.com
