Телеграмм бот с оповещением о заказе (порт с Simpla cms)

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

sergresso
Аватара
sergresso
Репутация: 3
Сообщения: 14
Зарегистрирован: 21.01.2019
С нами: 7 месяцев 4 дня

Сообщение #1 sergresso » 24.01.2019, 15:42

Автор: nikolayv
ссылка: 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');



Дальше автор предлагает прописать в админку, но я себе не делал. Кто хочет может сам посидеть и прописать.
Вложения
TgNotify.7z
(1.74 КБ) 29 скачиваний
PIXELHAND STUDIO

Julius123 M
Julius123 M
Репутация: 19
Сообщения: 198
Зарегистрирован: 05.02.2017
С нами: 2 года 6 месяцев

Сообщение #2 Julius123 » 27.07.2019, 19:29

Подскажите, как подвязать чтобы были уведомления не только о заказах, но и обратный звонок, комментарии?


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»