Как проверить посещение сайта после нажатия на ссылку в боте, созданном с помощью ботов.Бизнес

#telegram-bot #bots.business

#telegram-бот #боты.бизнес

Вопрос:

У меня есть бот, созданный в ботах.Бизнес

Мой бот отправляет ссылку на веб-страницу пользователю.

Пользователь может:

  • нажмите на эту ссылку и перейдите на веб-страницу
  • нажмите на эту ссылку и немедленно закройте браузер
  • не нажимайте на ссылку

Как проверить, что пользователь посещает эту веб-страницу?

Ответ №1:

У нас есть несколько способов:

  1. Разместите любую секретную информацию на своей веб-странице. Пользователь должен скопировать этот секрет и отправить боту после посещения веб-страницы. Бот может проверить этот секрет. Если секрет действителен — пользователь посещает веб-страницу. Иначе нет.

    Это более простой способ для разработки, но не для пользователей.

  2. Используйте 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

}