@santavits

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

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

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

Есть ли ещё какие нибудь варианты? без добавления бота в администраторы
  • Вопрос задан
  • 2679 просмотров
Пригласить эксперта
Ответы на вопрос 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 также можно применить, но лучше не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы