Комментарии 15
1. Лучше использовать приватный канал для таких дел
2. Зачем прокси через node.js? В простейшем случае можно писать напрямую с сайта в api.telegram.org, «благо» Access-Control-Allow-Origin:*.
2. Зачем прокси через node.js? В простейшем случае можно писать напрямую с сайта в api.telegram.org, «благо» Access-Control-Allow-Origin:*.
-2
1. Наверное лучше использовать канал, да. Я хотел организовать все быстро и чтобы работало.
2. Мое приложение работает на ноде, поэтому решил почему бы не свалить этот процесс на нее.
2. Мое приложение работает на ноде, поэтому решил почему бы не свалить этот процесс на нее.
P.S.
Практика и опыт в решении разных задач — хорошо)
0
2. Зачем прокси через node.js? В простейшем случае можно писать напрямую с сайта в api.telegram.org, «благо» Access-Control-Allow-Origin:*.
Злобный хацкер спалил в консоли браузера токен и начнёт использовать бота в своих хацкеравских целях.
+3
Именно \O/
0
Каких? Послать рекламу казино в канал для 5 человек? Или вы еще для чего то будете использовать бота? Завести 2х ботов не позволяет религия?
0
Злобный хацкер например может всякие незаконные анонимные действия совершать(продажа оружия, веществ, террор, поддельные документы), а бот зарегистрирован на тебя и если телега прогнется все-таки под государство, то анонимности конец.
Возможно можно сформулировать мысль иначе, но смысл думаю понятен
Возможно можно сформулировать мысль иначе, но смысл думаю понятен
0
2, т.е. вы предлагаете использовать токен от бота в фронте?
+2
А в чем преимущество канала?
В обычном чате с ботом можно добавить какую-то функциональность к сообщениям. Ответить там, или переслать или сохранить где-то. Зачем в данном случае нужен канал?
В обычном чате с ботом можно добавить какую-то функциональность к сообщениям. Ответить там, или переслать или сохранить где-то. Зачем в данном случае нужен канал?
+1
Канал тоже позволяет сохранить или переслать куда-то. Притом имя бота не будет светиться в канале в отличии от чата, т.е. пересылать с закрытого канала более секьюрно.
Сама суть в том, что на канал можно не мьютить, в отличии от чата, в котором постоянно будут возникать флуды не по делу, что в конце концов заставит вас замьютить чат и пропустить важное сообщение.
Ну и токен бота, который постит в канал можно распечатать хоть на заборе, читать из канала чужие сообщения он не сможет, посмотреть кто подписан на канал — тоже.
Сама суть в том, что на канал можно не мьютить, в отличии от чата, в котором постоянно будут возникать флуды не по делу, что в конце концов заставит вас замьютить чат и пропустить важное сообщение.
Ну и токен бота, который постит в канал можно распечатать хоть на заборе, читать из канала чужие сообщения он не сможет, посмотреть кто подписан на канал — тоже.
0
Отправить и очистить следует сменить местами и разукрасить в разный цвет. Я, смотря на гифку, мысленно представил как каждый раз жму очистить вместо отправить X)
Проверить как правильно делается можно открыв консоль хрома и ввести confirm(1)
Проверить как правильно делается можно открыв консоль хрома и ввести confirm(1)
-1
Всё намного проще. На самом деле, сообщение можно отправить прямо из JS на страничке. Не нужен node.js, не нужны запросы на сервер. Просто 20 коротких строк JS.
Понятно, что светить токен бота и чат айди — не кошерно. Однако, знать это всё равно неплохо.
При желании, функцию sendMsg (из этого скрипта) для отправки JSON данных методом POST по такой же схеме можно реализовать на php. Например, через curl.
Разметка формы:
Понятно, что светить токен бота и чат айди — не кошерно. Однако, знать это всё равно неплохо.
При желании, функцию sendMsg (из этого скрипта) для отправки JSON данных методом POST по такой же схеме можно реализовать на php. Например, через curl.
const TOKEN = xxx; // токен от BotFather
const CHAT_ID = yyy; // chat_id для телеграм
var form = document.querySelector('.form'); // находим в DOM нашу лид-форму
form.addEventListener("submit", function (e) { // прослушиваем форму
e.preventDefault(); // перехватываем стандартный ответ
data = new FormData(this); // вместо serialize на jQuery
sendMsg(data); // передаём данные из формы на отправку
})
function sendMsg(data) {
var url = 'https://api.telegram.org/bot' + TOKEN + '/sendMessage'; // токен бота
var body = JSON.stringify({ // склеиваем объект в JSON строку
chat_id: CHAT_ID,
parse_mode: 'Markdown', // разметка сообщений вкл (чтобы использовать *жирный текст*)
text: '*Новый лид*\n' + data.get("title") + '\n\n*Имя:* ' + data.get("name") + '\n*Телефон:* ' + data.get("phone") + '\n*Откуда:* [' + window.location.href + '](' + window.location.href + ')'
});
var xhr = new XMLHttpRequest(); // инициализируем AJAX запрос
xhr.open('POST', url, true); // отправляем наше сообщение методом POST на сервак телеги
xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8'); // на всякий случай, оповестим телеграм, что отправили JSON
xhr.send(body);
}
Разметка формы:
<form method="post" class="form">
<input type="hidden" name="title" value="Есть вопросы?" />
<input type="text" name="phone" placeholder="Телефон (+7 ...)"/>
<input type="text" name="name" placeholder="Имя" />
<button>БЕСПЛАТНАЯ КОНСУЛЬТАЦИЯ</button>
</form>
-2
можно еще посмотреть в сторону
npm install node-telegram-bot-api
github.com/yagop/node-telegram-bot-api
npm install node-telegram-bot-api
github.com/yagop/node-telegram-bot-api
+1
Угу, ничего сложного.
Делал чат для сайта с использованием телеграма.
Делал чат для сайта с использованием телеграма.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Надоевшая почта или как отправлять сообщения с сайта в Telegram через Node.js (Express)