Телеграмм бот с оповещением о заказе (порт с Simpla cms)
Добавлено: 24.01.2019, 15:42
Автор: nikolayv
ссылка: http://forum.simplacms.ru/topic/12048-уведомление ... зах-через-чат-бота-в-telegram/
1) Создадим бота через Bot Father, подробно описано в Telegram Bot API. Запишем токен созданного бота.
2) Создадим публичный канал и установим для него username (название канала).
3) Добавим в канал созданного бота. Добавлять не как пользователя, а как администратора, иначе будет ошибка!
4) Перейдём по ссылке
5) После перехода по ссылке будет выведен id канала, сохраним его.
В настройках канала сделаем его приватным.
6) Заходим в папку API и заливаем туда файл TgNotify.php (во вложении архив TgNotify.7z)
7) Открываем файл API/Okay.php
после строки
добавим
8) Открываем View/CartView.php
Ищем код
Перед ним вставляем:
9) В субд выполняем следующий код
10) Открываем файл /backend/core/SettingsNotifyAdmin.php
ищем строчки
добавляем
Дальше автор предлагает прописать в админку, но я себе не делал. Кто хочет может сам посидеть и прописать.
ссылка: http://forum.simplacms.ru/topic/12048-уведомление ... зах-через-чат-бота-в-telegram/
1) Создадим бота через Bot Father, подробно описано в Telegram Bot API. Запишем токен созданного бота.
2) Создадим публичный канал и установим для него username (название канала).
3) Добавим в канал созданного бота. Добавлять не как пользователя, а как администратора, иначе будет ошибка!
4) Перейдём по ссылке
Код: Выделить всё
https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[USERNAME_КАНАЛА]&text=тест
5) После перехода по ссылке будет выведен id канала, сохраним его.
В настройках канала сделаем его приватным.
6) Заходим в папку API и заливаем туда файл TgNotify.php (во вложении архив TgNotify.7z)
7) Открываем файл API/Okay.php
после строки
Код: Выделить всё
'notify' => 'Notify',
добавим
Код: Выделить всё
'tgnotify' => 'TgNotify',
8) Открываем View/CartView.php
Ищем код
Код: Выделить всё
// Отправляем письмо пользователю
$this->notify->email_order_user($order->id);
// Отправляем письмо администратору
$this->notify->email_order_admin($order->id);
Перед ним вставляем:
Код: Выделить всё
//Уведомим в Telegram
if($this->settings->tg_notify==1)
$this->tgnotify->message($order->id);
9) В субд выполняем следующий код
Код: Выделить всё
INSERT INTO ok_settings (name, value) VALUES ('tg_notify', 1);
INSERT INTO ok_settings (name, value) VALUES('tg_token', 'ВАШ ТОКЕН');
INSERT INTO ok_settings (name, value) VALUES ('tg_apiurl', 'https://api.telegram.org/bot');
INSERT INTO ok_settings (name, value) VALUES ('tg_channel', 'ВАШ ID КАНАЛА');
10) Открываем файл /backend/core/SettingsNotifyAdmin.php
ищем строчки
Код: Выделить всё
$this->settings->order_email = $this->request->post('order_email');
$this->settings->comment_email = $this->request->post('comment_email');
$this->settings->notify_from_email = $this->request->post('notify_from_email');
добавляем
Код: Выделить всё
$this->settings->tg_notify= ($this->request->post('tg_notify')==NULL) ? '0' : '1';
$this->settings->tg_token = $this->request->post('tg_token');
$this->settings->tg_apiurl = $this->request->post('tg_apiurl');
$this->settings->tg_channel = $this->request->post('tg_channel');
Дальше автор предлагает прописать в админку, но я себе не делал. Кто хочет может сам посидеть и прописать.