Telegramm + 1C + Webhooks + Apache + Selbstsigniertes Zertifikat

Es werden viele Zeilen über die Integration von Telegramm und 1C geschrieben. Aber nirgends habe ich die vollständigen Anweisungen zum Installieren und Konfigurieren von Webhooks gesehen. Ich werde versuchen, es zu schreiben.

Für all das brauchen wir (oder es ist richtiger zu sagen, was von mir verwendet wurde):

  1. Apache 2.2.24
  2. OpenSSL (im Lieferumfang der Apache-Installation enthalten)
  3. 1C (mit Webservermodulen)
  4. Eigene Domain
  5. Erstellt Bot in Telegramm (Ich werde seine Erstellung nicht beschreiben, weil es ziemlich trivial ist)

Es wird davon ausgegangen, dass die gesamte Software, die Sie installiert haben.

Beginnen wir also mit einem Zertifikat. Öffnen Sie die Befehlszeile und führen Sie den folgenden Code aus:

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"

Wobei:

YOURPRIVATE.key der private Schlüssel des Zertifikats ist. Es wird im

Apache YOURPUBLIC.pem verwendet - dem öffentlichen Schlüssel des Zertifikats. Wird bei der Registrierung eines Webhooks verwendet.

YOURDOMAIN.EXAMPLE - die Adresse Ihrer Domain mit einem Webhook. Es muss noch mit der Webhook-Adresse übereinstimmen !!!

Nach dem Ausführen dieses Codes werden die Schlüsseldateien im Ordner openssl angezeigt (ich habe diese "C: \ Programme \ Apache Software Foundation \ Apache2.2 \ bin").

Ich habe sie in den Apache conf-Ordner kopiert.

Fahren wir mit der Konfiguration von Apache fort.

Ich habe viele verschiedene Wege gesehen. Folgendes hat bei mir funktioniert:

Die folgenden Zeilen wurden zu httpd.conf hinzugefügt:

Listen 443 

so dass der Apache Port 443 "abhört".

Der Block <IfModule ssl_module> hat die folgende Form:

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

Ganz am Ende werden Zeilen hinzugefügt, in denen ich den Pfad zum Zertifikat anzeige:

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

Und kommentieren Sie die Zeile aus:

LoadModule ssl_module modules/mod_ssl.so 

In der Konfiguration erstellen wir einen HTTP-Dienst. Er wird das Telegramm beantworten und seine Beschwerden bearbeiten.

In meinem Fall werden die folgenden Parameter angegeben:

Name: TGWebhuk RootURL
: Webhook
Wiederverwendung von Sitzungen : Nicht verwenden (funktionierte nicht im automatischen Modus)
Lebensdauer: 20
URL-Muster: Jedes Muster wurde mit zwei Methoden erstellt: GET- und POST-

Bild

Bild

Bild

Methodenhandler werden erstellt Default. Ich werde dem POST-Handler Folgendes hinzufügen, um die Verbindung zu überprüfen:

 POST()

	(""); //chat_id
	 =  HTTP(200);
	 ;
	



&
 ()
	
		 = " ";
		 = "";//  telegram
		 = "api.telegram.org";
	     = "bot" +  + "/sendMessage?chat_id=" + ((, "=; =; =."), ".", "") + "&text=" + ;
   		  =   HTTP(,443,,,,, OpenSSL());
		 =  HTTP();
		 = .();
	

Es bleibt die Datenbank zu veröffentlichen und den Webhook anzuhängen.

Die Veröffentlichung erfolgt wie immer. Sie müssen lediglich der Veröffentlichung des HTTP-Dienstes Häkchen hinzufügen:

Bild

Als letzten Schritt hängen wir unser 1C an das Telegramm an. Dafür habe ich eine einfache HTML-Seite mit folgendem Code verwendet:

<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>

Wählen Sie im Formular einfach den öffentlichen Schlüssel aus und geben Sie den vollständigen Pfad zu unserem http-Service ein. Ich erinnere Sie daran, dass der vollständige Pfad zum Dienst folgendermaßen aussehen wird:

YourDomain / BaseName / hs / ServiceName / v1

Bitte geben Sie den Code nicht ein, einige Dinge werden absichtlich per Hardcode ausgeführt, weil All dies wurde ausschließlich zu Demonstrationszwecken durchgeführt.

Die Veröffentlichung wurde geschrieben, weil Ich habe kein einziges funktionierendes Beispiel für die Arbeit mit Webhooks auf der Site gefunden, außer dem Telegramm-Bot-Konstruktor. Aber es wird bezahlt und vielleicht braucht es nicht jeder in dieser Form.

Das Archiv enthält die Installation von Apache 2.2.24 zusammen mit Openssl (aus irgendeinem Grund habe ich lange gebraucht, um es zu finden), eine HTML-Datei zum Registrieren eines Web-Hooks, eine Apache-Konfigurationsdatei und eine CF-Konfiguration mit einem http-Dienst sowie ein Beispiel zum Senden einer Testnachricht. Das Herunterladen ist optional, da Der gesamte Inhalt befindet sich im Artikel.

All Articles