Telegram + 1C + Webhooks + Apache + ինքնաստորագրված վկայագիր

Telegram-ի և 1C-ի ինտեգրման մասին բազմաթիվ տողեր են գրվել։ Բայց ոչ մի տեղ ես չտեսա ամբողջական հրահանգներ վեբ-կեռիկներ տեղադրելու և կազմաձևելու համար: Ես կփորձեմ գրել այն:

Այս ամենի համար մեզ անհրաժեշտ է (կամ ավելի ճիշտ կլինի ասել, թե ինչ է օգտագործվել իմ կողմից).

  1. Apache 2.2.24
  2. OpenSSL (ներառված է Apache-ի տեղադրման մեջ)
  3. 1C (մոդուլներով) վեբ սերվեր)
  4. Ձեր սեփական տիրույթը
  5. Ստեղծվել է բոտ 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-ը վկայագրի հանրային բանալին է: Կօգտագործվի webhook գրանցելիս

YOURDOMAIN.EXAMPLE - ձեր տիրույթի հասցեն վեբ-կապիկով: Այն պետք է համապատասխանի webhook հասցեին!!!

Այս կոդը գործարկելուց հետո հիմնական ֆայլերը կհայտնվեն openssl թղթապանակում (ինձ համար դա «C:Program FilesApache Software FoundationApache2.2bin» է):

Ես դրանք պատճենեցի Apache conf թղթապանակում:

Եկեք անցնենք Apache-ի տեղադրմանը:

Ես շատ տարբեր ուղիներ եմ տեսել: Ինձ համար աշխատեց հետևյալը.

httpd.conf-ին ավելացվել են հետևյալ տողերը.

Listen 443 

որպեսզի Apache-ն «լսի» 443 նավահանգիստը:

Արգելափակել կրճատվել է հետևյալ ձևով.

<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 ծառայություն: Նա է, ով կպատասխանի հեռագրին և ընթացք կտա նրա խնդրանքներին։

Իմ դեպքում նշված են հետևյալ պարամետրերը.

Անունը՝ TGWebhook
RootURL՝ webhook
Նիստերի վերօգտագործում. Չեն օգտագործում (ավտոմատ ռեժիմով դա ինձ մոտ չաշխատեց)
Կյանքի տևողությունը՝ 20
URL կաղապարներ. ստեղծել է «Ցանկացած» ձևանմուշ երկու եղանակով՝ GET և POST

Telegram + 1C + Webhooks + Apache + ինքնաստորագրված վկայագիր

Telegram + 1C + Webhooks + Apache + ինքնաստորագրված վկայագիր

Telegram + 1C + Webhooks + Apache + ինքնաստորագրված վկայագիր

Մեթոդի մշակիչները ստեղծվում են լռելյայն: Ես կավելացնեմ հետևյալը POST կարգավորիչին, պարզապես կապը ստուգելու համար.

Функция ЛюбойPOST(Запрос)

	ВыслатьТестовоеСообщение(""); //chat_id
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;
	
КонецФункции


&НаСервере
Процедура ВыслатьТестовоеСообщение(Чат)
	
		Сообщение = "Тестовое сообщение";
		Токен = "";//Ваш токен telegram
		Сервер = "api.telegram.org";
	    Ресурс = "bot" + Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(Чат, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Сообщение;
   		Соединение  =  Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
		Запрос = Новый HTTPЗапрос(Ресурс);
		Ответ = Соединение.Получить(Запрос);
	
КонецПроцедуры

Մնում է միայն հրապարակել տվյալների բազան և կցել webhook:

Հրապարակումը կատարվում է ինչպես միշտ, պարզապես անհրաժեշտ է ավելացնել վանդակներ HTTP ծառայության հրապարակումներում.

Telegram + 1C + Webhooks + Apache + ինքնաստորագրված վկայագիր

Վերջին քայլը մեր 1C-ը Telegram-ին կապելն է: Դրա համար ես օգտագործեցի պարզ 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/DatabaseName/hs/ServiceName/v1

Խնդրում եմ, մի հարվածեք կոդը, որոշ բաներ միտումնավոր կոշտ կոդավորված են, քանի որ... այս ամենը արվել է բացառապես ցուցադրական նպատակներով:

Հրապարակումը գրվել է այն պատճառով, որ Կայքում ես չգտա վեբ-կապիկների հետ աշխատելու ոչ մի աշխատանքային օրինակ, բացառությամբ Telegram Bot Constructor-ի: Բայց դա վճարովի է, և թերևս ոչ բոլորին է պետք այս ձևով:

Արխիվը պարունակում է Apache 2.2.24-ի տեղադրումը Openssl-ի հետ միասին (ինչ-ինչ պատճառներով ինձ երկար ժամանակ պահանջվեց այն գտնելու համար), html ֆայլ՝ webhook-ի գրանցման համար, Apache-ի կազմաձևման ֆայլ և cf կոնֆիգուրացիա http ծառայության հետ և օրինակ։ թեստային հաղորդագրություն ուղարկելու մասին: Ներբեռնումը պարտադիր չէ, քանի որ Ամբողջ բովանդակությունը հոդվածում է:

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster