Telegram-ի և 1C-ի ինտեգրման մասին բազմաթիվ տողեր են գրվել։ Բայց ոչ մի տեղ ես չտեսա ամբողջական հրահանգներ վեբ-կեռիկներ տեղադրելու և կազմաձևելու համար: Ես կփորձեմ գրել այն:
Այս ամենի համար մեզ անհրաժեշտ է (կամ ավելի ճիշտ կլինի ասել, թե ինչ է օգտագործվել իմ կողմից).
- Apache 2.2.24
- OpenSSL (ներառված է Apache-ի տեղադրման մեջ)
- 1C (մոդուլներով) վեբ սերվեր)
- Ձեր սեփական տիրույթը
- Ստեղծվել է բոտ 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



Մեթոդի մշակիչները ստեղծվում են լռելյայն: Ես կավելացնեմ հետևյալը POST կարգավորիչին, պարզապես կապը ստուգելու համար.
Функция ЛюбойPOST(Запрос)
ВыслатьТестовоеСообщение(""); //chat_id
Ответ = Новый HTTPСервисОтвет(200);
Возврат Ответ;
КонецФункции
&НаСервере
Процедура ВыслатьТестовоеСообщение(Чат)
Сообщение = "Тестовое сообщение";
Токен = "";//Ваш токен telegram
Сервер = "api.telegram.org";
Ресурс = "bot" + Токен + "/sendMessage?chat_id=" + СтрЗаменить(Формат(Чат, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + Сообщение;
Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);
КонецПроцедурыՄնում է միայն հրապարակել տվյալների բազան և կցել webhook:
Հրապարակումը կատարվում է ինչպես միշտ, պարզապես անհրաժեշտ է ավելացնել վանդակներ HTTP ծառայության հրապարակումներում.

Վերջին քայլը մեր 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 ծառայության ամբողջական ուղին: Հիշեցնեմ, որ ծառայության ամբողջական ուղին կունենա հետևյալ տեսքը.
Խնդրում եմ, մի հարվածեք կոդը, որոշ բաներ միտումնավոր կոշտ կոդավորված են, քանի որ... այս ամենը արվել է բացառապես ցուցադրական նպատակներով:
Հրապարակումը գրվել է այն պատճառով, որ Կայքում ես չգտա վեբ-կապիկների հետ աշխատելու ոչ մի աշխատանքային օրինակ, բացառությամբ Telegram Bot Constructor-ի: Բայց դա վճարովի է, և թերևս ոչ բոլորին է պետք այս ձևով:
Արխիվը պարունակում է Apache 2.2.24-ի տեղադրումը Openssl-ի հետ միասին (ինչ-ինչ պատճառներով ինձ երկար ժամանակ պահանջվեց այն գտնելու համար), html ֆայլ՝ webhook-ի գրանցման համար, Apache-ի կազմաձևման ֆայլ և cf կոնֆիգուրացիա http ծառայության հետ և օրինակ։ թեստային հաղորդագրություն ուղարկելու մասին: Ներբեռնումը պարտադիր չէ, քանի որ Ամբողջ բովանդակությունը հոդվածում է:
Source: www.habr.com
