Telegram + 1C + Webhookid + Apache + Enesetalutav sertifikaat

Palju on kirjutatud Telegrami ja 1C integreerimisest. Kuid ma ei ole kuskil näinud täielikku juhendit veebihookide seadistamiseks ja installimiseks. Proovin selle kirjutada.

Selle jaoks vajame (või täpsemalt öeldes, et mina kasutasin):

  1. Apache 2.2.24
  2. OpenSSL (mis on Apache installatsioonis)
  3. 1C (koos moodulitega) veebiserver)
  4. Oma domeen
  5. Loodud bot Telegramis (ma ei hakka selle loomist kirjeldama, kuna see on üsna triviaalne)

Eeldatakse, et kogu tarkvara on teil juba paigaldatud.

Nii et alustame sertifikaadi saamisest. Avame käsuviiba ja käitame järgmise koodi:

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"

Kus:

YOURPRIVATE.key — sertifikaadi privaatvõti. Seda kasutatakse Apache'is.

YOURPUBLIC.pem — sertifikaadi avalik võti. Seda kasutatakse veebihooki registreerimisel.

YOURDOMAIN.EXAMPLE — teie domeeni aadress veebihookiga. See peab täpselt vastama veebihooki aadressile!!!

Pärast selle koodi käivitamist ilmuvad openssl kaustas (minu puhul on see "C:Program FilesApache Software FoundationApache2.2bin") võtmefailid.

Kopeerisin need Apache conf kausta.

Liigume Apache seadistamise juurde.

Olen näinud palju erinevaid meetodeid. Minu puhul toimis järgmine:

httpd.conf faili on lisatud järgmised read:

Listen 443 

kuna Apache peab „kuulama” 443 porti.

Blokk <IfModule ssl_module> on muudetud järgmise näidisega:

<IfModule ssl_module>
SSLMutex default
SSLSessionCache none
<\/IfModule>

Lõpus on lisatud read, kus näitan teed sertifikaadile:

SSLEngine On
SSLCertificateFile conf/YOURPUBLIC.pem
SSLCertificateKeyFile conf/YOURPRIVATE.key

Ja kommenteerime välja järgmise rea:

LoadModule ssl_module modules/mod_ssl.so 

Konfiguratsioonis loome HTTP-teenuse. Just see teenus vastab Telegramile ja haldab selle päringuid.

Minu juhul on määratud järgmised parameetrid:

Nimi: TGVebhook
Juurlink: webhook
Seansside korduvkasutamine: Mitte kasutada (automaatse režiimiga mul ei töötanud)
Eluiga: 20
URL-mallid: loodud mall „Iga” kahe meetodiga: GET ja POST

Telegram + 1C + Webhookid + Apache + Enesetalutav sertifikaat

Telegram + 1C + Webhookid + Apache + Enesetalutav sertifikaat

Telegram + 1C + Webhookid + Apache + Enesetalutav sertifikaat

Meetodite töötlejad luuakse vaikimisi. POST töötlejasse lisan lihtsalt järgmise, et kontrollida ühendust:

Funktsioon ЛюбойPOST(Päring)

	SaataTestMessage(""); //chat_id
	Vastus = Uus HTTPTeenuseVastus(200);
	Tagasta Vastus;
	
LõppFunktsiooni


&Serveril
Protseduur SaataTestMessage(Chat)
	
		Sõnum = "Testi sõnum";
		Token = ""; //Teie telegramm-token
		Server = "api.telegram.org";
	    Ressurs = "bot" + Token + "\/sendMessage?chat_id=" + StrAsenda(Formaat(Chat, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Sõnum;
   		Ühendus = Uus HTTPÜhendus(Server,443,,,,,Uus TurvalineÜhendusOpenSSL());
		Päring = Uus HTTPPäring(Ressurs);
		Vastus = Ühendus.Saa(Päring);
	
LõppProtseduur

Jäänud on välja anda andmebaas ja siduda veebihook.

Avaldamine toimub nagu tavaliselt, tuleb ainult lisada märkmed HTTP-teenuse avaldamiseks:

Telegram + 1C + Webhookid + Apache + Enesetalutav sertifikaat

Viimasena seome meie 1C Telegramiga. Selle jaoks kasutasin lihtsalt html-lehte järgmise koodiga:

<html>
<body>

<form action="https://api.telegram.org/bot<ЗдесьДолженБытьТокен>/setwebhook" method="post" enctype="multipart/form-data">
    Vali üles laadida sertifikaat:
    <input type="file" name="certificate" id="fileToUpload">
	URL: <input type="text" name="url"  value="https://<YOURWEBSITE>/<YOUR_PHP_URL>"><br>
    <input type="submit" value="Laadi sertifikaat üles" name="submit">
</form>

</body>
</html>

Vormis valime lihtsalt avaliku võtme ja sisestame täispika tee meie http-teenusele. Tuletan meelde, et täispikk tee teenusele näeb välja järgmiselt:

TeieDomeen/AndmebaasiNimi/hs/TeenuseNimi/v1

Palun ärge visake mind jalaga koodi pärast, mõned asjad on tahtlikult kõvaks kodeeritud, kuna see tehti ainult demonstreerimise eesmärkidel.

Avaldamine kirjutati, kuna ma ei leidnud veebihookide töö kohta ühtegi töökindlat näidet saidilt, välja arvatud Telegrami botide ehitaja. Kuid see on tasuline ja võib-olla pole see kõigile vajalik.

Arhiiv sisaldab Apache 2.2.24 installatsiooni koos Openssliga (miks see leidmine mulle nii kaua aega võttis), HTML-fail veebihooki registreerimiseks, Apache konfiguratsioonifail ja cf konfiguratsioon http-teenusega ning näide test-sõnumi saatmiseks. Laadimine ei ole kohustuslik, kuna kõik sisu on artiklis.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster