nikolayv Опубликовано 30 ноября, 2016 Жалоба Поделиться Опубликовано 30 ноября, 2016 (изменено) Мой мануал подробно описан на сайте: http://valiotti.com/usefulИтак, общая схема простая, создаем нового бота в Telegram и добавляем его в нужный канал. В этот канал будем через Simpla API отправлять апдейты.Используем следующую схему перед созданием модуля:Создадим бота через Bot Father, подробно описано в Telegram Bot API. Запишем токен созданного бота. Создадим публичный канал и установим для него username. Добавим в канал созданного бота. Перейдём по ссылке https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[USERNAME_КАНАЛА]&text=тест После перехода по ссылке будет выведен id канала, сохраним его. В настройках канала сделаем его приватным (убрать username).Теперь, добавим следующий код в Simpla CMSШаг 1.Выкладываем скрипт TgNotify.php в папку /apiШаг 2.Добавляем строки в файл api/Simpla.phpПосле строки 'notify' => 'Notify', Вставляем 'tgnotify' => 'TgNotify', Шаг 3.Файл View/CartView.phpПосле строки // Отправляем письмо администратору $this->notify->email_order_admin($order->id); Вставляем //Уведомим в Telegram if($this->settings->tg_notify==1) $this->tgnotify->message($order->id); Шаг 4.В субд выполняем следующий код INSERT INTO s_settings (name, value) VALUES ('tg_notify', 1); INSERT INTO s_settings (name, value) VALUES('tg_token', 'ВАШ ТОКЕН'); INSERT INTO s_settings (name, value) VALUES ('tg_apiurl', 'https://api.telegram.org/bot'); INSERT INTO s_settings (name, value) VALUES ('tg_channel', 'ВАШ ID КАНАЛА'); АдминкаШаг 5.Файл Simpla/SettingsAdmin.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'); Шаг 6.Файл simpla/design/html/settings.tplПосле строк <h2>Оповещения</h2> <ul> <li><label class=property>Оповещение о заказах</label><input name="order_email" class="simpla_inp" type="text" value="{$settings->order_email|escape}" /></li> <li><label class=property>Оповещение о комментариях</label><input name="comment_email" class="simpla_inp" type="text" value="{$settings->comment_email|escape}" /></li> <li><label class=property>Обратный адрес оповещений</label><input name="notify_from_email" class="simpla_inp" type="text" value="{$settings->notify_from_email|escape}" /></li> </ul> </div> <!-- Параметры (The End)--> Добавляем <!-- Параметры Telegram--> <div class="block layer"> <h2>Уведомления о заказах в Telegram</h2> <ul> <li><label class=property>Включить уведомления</label><input name="tg_notify" class="simpla_inp" type="checkbox" value="{$settings->tg_notify}" {if $settings->tg_notify=='1'}checked{/if}/> </li> <li><label class=property>Token</label><input name="tg_token" class="simpla_inp" type="text" value="{$settings->tg_token|escape}" /></li> <li><label class=property>API URL</label><input name="tg_apiurl" class="simpla_inp" type="text" value="{$settings->tg_apiurl|escape}" /></li> <li><label class=property>ID канала в телеграмме</label><input name="tg_channel" class="simpla_inp" type="text" value="{$settings->tg_channel|escape}" /></li> </ul> </div> <!-- Параметры Telegram (The End)--> Данный модуль реализован и используется в магазине свежего кофе True Coffee Roasters (кстати, кофе действительно вкусный и со скидкой по-промокоду TRUECOUPON). Если необходима установка, могу за отдельную плату помочь.Скайп - kolya_spb. Изменено 30 ноября, 2016 пользователем nikolayv Цитата Ссылка на сообщение Поделиться на другие сайты
pizhama Опубликовано 1 декабря, 2016 Жалоба Поделиться Опубликовано 1 декабря, 2016 (изменено) Спасибо, все работает! В файле - TgNotify.php в строке 155 написано "тип помола". Кому надо изменяйте на свое. Я не разобрался до конца. Это уведомления только для администратора? Или клиенту тоже приходит уведомление (при наличии телеграм, конечно же)? Изменено 1 декабря, 2016 пользователем pizhama Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 1 декабря, 2016 Автор Жалоба Поделиться Опубликовано 1 декабря, 2016 Спасибо, все работает! В файле - TgNotify.php в строке 155 написано "тип помола". Кому надо изменяйте на свое. Я не разобрался до конца. Это уведомления только для администратора? Или клиенту тоже приходит уведомление (при наличии телеграм, конечно же)? Простите, сейчас подкорректирую. Это уведомление для администратора.Технически, можно сделать и для клиента, но есть заморочки с тем, что он должен установить бота себе (инициировать с ним контакт). В противном случае отправка не легитимна, а кроме того мы не знаем chat_id. Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 1 декабря, 2016 Автор Жалоба Поделиться Опубликовано 1 декабря, 2016 Спасибо, все работает! В файле - TgNotify.php в строке 155 написано "тип помола". Кому надо изменяйте на свое. Убрал. Спасибо за внимательность! Цитата Ссылка на сообщение Поделиться на другие сайты
pizhama Опубликовано 2 декабря, 2016 Жалоба Поделиться Опубликовано 2 декабря, 2016 (изменено) Простите, сейчас подкорректирую. Это уведомление для администратора.Технически, можно сделать и для клиента, но есть заморочки с тем, что он должен установить бота себе (инициировать с ним контакт). В противном случае отправка не легитимна, а кроме того мы не знаем chat_id.Я не разбирался с этим вопросом. Почему не легитимна? Многие магазины шлют информацию о заказах через вайбер, давно искал это решение, вот нашел телеграм, но оказалось только для администраторов. Правда в вайбере как-то подтверждается аккаунт магазина (или компании) со стороны вайбера. В любом случае спасибо за интересное дополнение. Изменено 2 декабря, 2016 пользователем pizhama Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 декабря, 2016 Автор Жалоба Поделиться Опубликовано 2 декабря, 2016 Я не разбирался с этим вопросом. Почему не легитимна? Многие магазины шлют информацию о заказах через вайбер, давно искал это решение, вот нашел телеграм, но оказалось только для администраторов. Правда в вайбере как-то подтверждается аккаунт магазина (или компании) со стороны вайбера. В любом случае спасибо за интересное дополнение. Вы знаете, мне этот вопрос тоже интересен и актуален. Давайте попробуем найти решение, а дописать его не составит труда. Тут дело вот в чем, чтобы бот мог отправлять сообщение конкретному chat_id, надо знать этот самый chat_id. Обычно, чтобы его узнать надо, чтобы пользователь нажал кнопку /start в начале работы бота. Касательно Viber я знаю, что там ребята отправляют напрямую по номеру телефона. В telegram по номеру телефона просто сообщение не отправить, к сожалению. В нашем случае мы создавали канал, куда включали бота, и ID канала мы знаем наверняка. Касательно бота с уведомлением пользователя у меня есть другая реализация (она, к сожалению, платная), но она чуть шире - там еще каталог и интеграция с Simpla.Мне пока не разрешают тут продавать свои модули и доработки, но может будет интересно посмотреть как это работает: https://telegram.me/truecoffee_bot. Тут при создании заказа, конечно же, пользователь сразу получает уведомление, поскольку мы его четко можем инициировать. Цитата Ссылка на сообщение Поделиться на другие сайты
pizhama Опубликовано 2 декабря, 2016 Жалоба Поделиться Опубликовано 2 декабря, 2016 Касательно Viber я знаю, что там ребята отправляют напрямую по номеру телефона. В telegram по номеру телефона просто сообщение не отправить, к сожалению.Точно, этого я не учел. Значит надо копать в сторону вайбера. Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 декабря, 2016 Автор Жалоба Поделиться Опубликовано 2 декабря, 2016 Точно, этого я не учел. Значит надо копать в сторону вайбера. Давайте сделаем. Нужен API. Цитата Ссылка на сообщение Поделиться на другие сайты
pizhama Опубликовано 2 декабря, 2016 Жалоба Поделиться Опубликовано 2 декабря, 2016 Вот, что нашел:У Viber нет открытого API. Только закрытое, получить к нему доступ могуттолько очень крупные компании. Первыми в СНГ насколько мне известно этосделали LiqPay. Сейчас так же соглашение подписала одна крупнаяукраинская компания, занимающаяся смс-трафиком. Но условия этогосоглашения строго запрещают отправлять что-либо кроме технических,сервисных сообщений, типа паролей, уведомлений и т.п. Никакой рекламы. Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 декабря, 2016 Автор Жалоба Поделиться Опубликовано 2 декабря, 2016 Вот, что нашел: Ага, ну вот я и помню, что раньше когда работал в одном крупном екоммерсе, мы отправляли через sms traffic. По идеи sms.ru должны внедрить, но что-то у них уже давно висит статус о том, что "скоро сделают". Цитата Ссылка на сообщение Поделиться на другие сайты
bahonio Опубликовано 2 декабря, 2016 Жалоба Поделиться Опубликовано 2 декабря, 2016 smsc.ru можно отправлять в Viber, чтобы увидеть информацию надо быть зарегистрированным там.Вот анкета для регистрации: Анкета клиента для подключения к ViberДля регистрации необходимы следующие данные:Название, ссылка;Страна;Тип сервиса (магазин, страхование, финансы и т.п.);Прогноз объема (сообщений в день);Ожидаемый пик нагрузки (сообщений в секунду);По каким странам будет производиться рассылка;Примеры сообщений на русском и английском языках;Ссылка и скриншот на оферту/условие оказания услуг с информацией о получении абонентом сообщения по Viber.Минимальный объем 5 000 — 10 000 сообщений в месяц (прогноз).Регистрация нового сервиса (клиента) занимает в среднем 2-3 недели.Максимальное количество символов в одном сообщении — 800. Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 Крутая фишка, спасибо! Сделал по инструкции и не работает (( Цитата Ссылка на сообщение Поделиться на другие сайты
pizhama Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 У меня работает. Значит что-то неправильно сделано Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 10 декабря, 2016 Автор Жалоба Поделиться Опубликовано 10 декабря, 2016 Дайте больше деталей, что не работает и в каком месте? Токен свой вставили от бота? Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 11 декабря, 2016 Жалоба Поделиться Опубликовано 11 декабря, 2016 Дайте больше деталей, что не работает и в каком месте? Токен свой вставили от бота? Конечно вставил)По началу не получалось привязать в админы бота, но потом разобрался и получилось, также вывел токен и пр. по списку, ну а далее пошагово вставил коды в файлытолько меня смущает ID канала в телеграмме, начинается с минуса "-", так и должно быть?) Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 11 декабря, 2016 Автор Жалоба Поделиться Опубликовано 11 декабря, 2016 Да, так и должно быть. Подозреваю, что так telegram различает пользователей и каналы Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 11 декабря, 2016 Жалоба Поделиться Опубликовано 11 декабря, 2016 Да, так и должно быть. Подозреваю, что так telegram различает пользователей и каналы значит все верно сделал, но не работает((есть какой-то способ проверить работоспособность? либо бота, либо скрипт?или может себе не приходит уведомление? потому что тестировал на на свой номер оформлял заказ Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 11 декабря, 2016 Автор Жалоба Поделиться Опубликовано 11 декабря, 2016 Не совсем понял вопрос. Дело в том, что это уведомление для администратора. Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 11 декабря, 2016 Жалоба Поделиться Опубликовано 11 декабря, 2016 Не совсем понял вопрос. Дело в том, что это уведомление для администратора.то что приходит админу это я знаю)когда проверяю работоспособность, делаю тестовый заказ и указываю тот же номер, что и зарегистрирован в Телеграм через который создавал бота и канал. Возможно проблема в этом? Цитата Ссылка на сообщение Поделиться на другие сайты
bahonio Опубликовано 12 декабря, 2016 Жалоба Поделиться Опубликовано 12 декабря, 2016 то что приходит админу это я знаю)когда проверяю работоспособность, делаю тестовый заказ и указываю тот же номер, что и зарегистрирован в Телеграм через который создавал бота и канал. Возможно проблема в этом? https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=[iD_КАНАЛА]&text=тест Не нужно делать тестовые заказы, ты можешь слать себе сообщения через ссылку. Подставь свои данные и наблюдай ответ. Например: "{"ok":true,"result":{"message_id":143,"chat":{"id":-**************,"title":"*******","type":"channel"},"date":1481528208,"text":"\u0442\u0435\u0441\u0442"}}". Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 12 декабря, 2016 Автор Жалоба Поделиться Опубликовано 12 декабря, 2016 (изменено) то что приходит админу это я знаю)когда проверяю работоспособность, делаю тестовый заказ и указываю тот же номер, что и зарегистрирован в Телеграм через который создавал бота и канал. Возможно проблема в этом?нет, это не должно влиять, он ведь не по номеру отправляет, а по chat_id канала. надо проверить работоспособность бота.попробовать можно так, создать в корне simpla php-файл из которого вызвать наш класс: $simpla->tgnotify->apiRequest("sendMessage", array('chat_id' => $simpla->settings->tg_channel, 'parse_mode'=>'HTML', "text" => 'test text')); Изменено 12 декабря, 2016 пользователем nikolayv Цитата Ссылка на сообщение Поделиться на другие сайты
Cpako Опубликовано 18 декабря, 2016 Жалоба Поделиться Опубликовано 18 декабря, 2016 Была ошибка из-за того, что не поставил - в Id. Поправил в базе минус и все заработало. Потом еще прикрутил и к модулю покупки в 1 клик. Спасибо автору. Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 27 декабря, 2016 Автор Жалоба Поделиться Опубликовано 27 декабря, 2016 Была ошибка из-за того, что не поставил - в Id. Поправил в базе минус и все заработало. Потом еще прикрутил и к модулю покупки в 1 клик. Спасибо автору. да, минус там, это критично, т.к. именно им, как я понял, отличается канал от обычного юзера. Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 14 января, 2017 Жалоба Поделиться Опубликовано 14 января, 2017 (изменено) у меня на этапе получения id и перехода по ссылке ничего не выдает: {"ok":false,"error_code":404,"description":"Not Found"} все данные подставил, токен и название канала Изменено 14 января, 2017 пользователем Julius123 Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 у меня на этапе получения id и перехода по ссылке ничего не выдает: {"ok":false,"error_code":404,"description":"Not Found"} все данные подставил, токен и название канала Специально для вас проверил, создал нового бота и канал. Что-то делаете не так. https://api.telegram.org/botТОКЕН/sendMessage?chat_id=@имя_канала&text=%D1%82%D0%B5%D1%81%D1%82 Проверьте, есть ли в админах канала ваш бот? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.