#telegram-bot #bots.business
#telegram-бот #боты.бизнес
Вопрос:
У меня есть бот, созданный в ботах.Бизнес
Мой бот отправляет ссылку на веб-страницу пользователю.
Пользователь может:
- нажмите на эту ссылку и перейдите на веб-страницу
- нажмите на эту ссылку и немедленно закройте браузер
- не нажимайте на ссылку
Как проверить, что пользователь посещает эту веб-страницу?
Ответ №1:
У нас есть несколько способов:
- Разместите любую секретную информацию на своей веб-странице. Пользователь должен скопировать этот секрет и отправить боту после посещения веб-страницы. Бот может проверить этот секрет. Если секрет действителен — пользователь посещает веб-страницу. Иначе нет.
Это более простой способ для разработки, но не для пользователей.
- Используйте webhook lib, это сложнее для разработки. Легко для пользователей.
Command / generate — вам нужно выполнить эту команду от имени администратора, прежде чем
let webhookUrl = Libs.Webhooks.getUrlFor({
// this command will be runned on webhook
command: "/onWebhook",
// this text will be passed to command
content: "http://yourpage.com",
// execute for this (current) user
user_id: user.id
})
Bot.sendMessage(webhookUrl);
У вас будет webhookUrl. Теперь вы можете разместить этот URL-адрес webhook в невидимом iframe размером 1 пиксель на своей веб-странице:
<IFRAME width=1 height=1 src=http://webhookUrl scrolling=no frameborder=0></IFRAME>
Также вы можете отправить запрос GET или POST на своей странице по этому URL-адресу веб-ссылки
Для пользователя:
Command /getLink пусть currentTaskUrl = «http://yourpage.com » User.setProperty(«currentTaskUrl», currentTaskUrl, «строка») Bot.SendMessage(«Ссылка: » currentTaskUrl)
Команда /onWebhook:
// it will be executed on webhook
let webPage = content;
let expectedPage = User.getProperty("currentTaskUrl")
if(webPage==expectedPage){
// user just visit web page
// your code here
User.setProperty("currentTaskUrl", null, "string")
}else{
// user visit another web page with this webhook
// may be he make refresh prev page or etc
}