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 калиди ҷамъиятии сертификат мебошад. Ҳангоми бақайдгирии вебхук истифода мешавад

YOURDOMAIN.EXAMPLE - суроғаи домени шумо бо вебхук. Он бояд ба суроғаи webhook мувофиқ бошад!!!

Пас аз иҷрои ин код, файлҳои калидӣ дар папкаи openssl пайдо мешаванд (барои ман ин "C:Program FilesApache Software FoundationApache2.2bin" аст).

Ман онҳоро ба ҷузвдони conf Apache нусхабардорӣ кардам.

Биёед ба танзими 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Запрос(Ресурс);
		Ответ = Соединение.Получить(Запрос);
	
КонецПроцедуры

Танҳо интишори пойгоҳи додаҳо ва замима кардани вебхук боқӣ мемонад.

Нашр ҳамчун ҳамеша анҷом дода мешавад, ба шумо танҳо лозим аст, ки қуттиҳои қайдро ба нашрияҳои хидматрасонии HTTP илова кунед:

Telegram + 1C + Webhooks + Apache + Шаҳодатномаи худ имзошуда

Қадами охирин ин пайваст кардани 1С-и моро ба 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/Name Database/hs/ServiceName/v1

Лутфан рамзро назанед, баъзе чизҳо дидаву дониста сахт код шудаанд, зеро... хамаи ин факат бо максади намоишй ичро карда шудааст.

Нашрия аз он сабаб навишта шудааст Ман як мисоли кории кор бо вебхукҳоро дар сайт наёфтам, ба истиснои Telegram Bot Constructor. Аммо он пулакӣ аст ва шояд на ҳама ба ин шакл ниёз доранд.

Дар бойгонӣ насби Apache 2.2.24 дар якҷоягӣ бо Openssl (бо баъзе сабабҳо барои ёфтани он ман вақти зиёд лозим буд), файли html барои сабти вебхук, файли конфигуратсияи Apache ва конфигуратсияи cf бо хидмати http ва мисолро дар бар мегирад. фиристодани паёми санҷишӣ. Зеркашӣ талаб карда намешавад, зеро Ҳама мундариҷа дар мақола мавҷуд аст.

Манбаъ: will.com

Хостинги боэътимодро барои сайтҳо бо муҳофизати DDoS, серверҳои VPS VDS харед 🔥 Харидани хостинги боэътимоди вебсайт бо муҳофизати DDoS, серверҳои VPS VDS | ProHoster