@santavits

Как получить номер последнего поста в telegram канале?

Добрый вечер.
Столкнулся с такой проблемой, как можно получить id последнего поста в канале telegram?

В апи есть метод getUpdates , но для получение информации этим методом, нужно добавить своего бота в администраторы канала с помощью которого будет парсится нужный канал.

Есть ли ещё какие нибудь варианты? без добавления бота в администраторы
  • Вопрос задан
  • 2187 просмотров
Пригласить эксперта
Ответы на вопрос 2
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Нет. Боты не могут парсить каналы чужие. Да и метод getUpdates работает не так, как вы ожидаете. Он возваращает только НОВЫЕ посты, которые как-бы непрочитаны ботом, но не ID последнего поста в канале.
Ответ написан
@BindOf
dim xmlhttp

set xmlhttp    = createobject("msxml2.xmlhttp")

function getlastpostnumber2(channel, num)
  on error resume next
  dim   chhref
  dim   pos
  dim   cyphers
  dim   pos1
  dim   symcnt
  dim   z
  dim   wi
  const sl = "/"
  cyphers            = "1234567890"
  pos                = 1
  getlastpostnumber2 = num
  with xmlhttp
    .open "get", "https://t.me/s/" & channel, false
    .send
    while pos > 0
      pos    = instr(pos, .responsetext, channel & sl)
      chhref = ""
      if pos > 0 then
        pos1   = pos + len(channel) + 1
        symcnt = pos1
        while instr(cyphers, mid(.responsetext, symcnt, 1)) > 0
          if err <> 0 then exit function
          chhref = chhref & mid(.responsetext, symcnt, 1)
          symcnt = symcnt + 1
        wend
      end if
      if pos > 0 then
        pos = pos + 1
        getlastpostnumber2 = chhref
      end if
    wend
end function


Вызов:

lastpostnumber = getlastpostnumber2("Название ТГ-канала", N)

Примечания:

1. N может быть равен 0 в общем случае, но в эту переменную можно установить номер последнего известного поста, если периодически хотим получать обновления с канала. Если в момент выполнения функции, например, пропадет соединение с Интернет, то она вернет значение N.

2. Объект msxml2.domdocument также можно применить, но лучше не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы