Читать сообщения канала telegram

#telegram

#telegram

Вопрос:

Итак, мне нужно читать все новые сообщения одного конкретного канала, на котором я нахожусь (не как администратор). Я искал различные клиентские API (.NET, PHP, nodejs), но ни один из них не помог.

У вас есть какие-нибудь идеи, как я мог бы это сделать?

Спасибо!

Комментарии:

1. Ну, в этом-то и проблема. Чтение сообщений канала — это действительно единственное, что я хочу делать, поэтому я надеялся на клиент telegram на C #, VB, PHP, Java или Nodejs, который я могу использовать для этого.

Ответ №1:

Вот как я это сделал :

Установите Telegram https://github.com/vysheng/tg

Установите оболочку Cli https://github.com/luckydonald/pytg

 from pytg import Telegram
from pytg.utils import coroutine
tg      = Telegram(  telegram="./tg/bin/telegram-cli", pubkey_file="./tg/tg-server.pub")
receiver    = tg.receiver
QUIT = False
@coroutine
def main_loop():
  try:
    while not QUIT:
      msg = (yield) # it waits until it got a message, stored now in msg.
      if msg.text is None:
        continue
      print(msg.event)
      print(msg.text)
  except GeneratorExit:
    pass
  except KeyboardInterrupt:
    pass
  else:
    pass

receiver.start()
receiver.message(main_loop())   
  

Версия NodeJS :

 const path = require('path');
const TelegramAPI = require('tg-cli-node');
const config = {
    telegram_cli_path: path.join(__dirname, 'tg/bin/telegram-cli'), //path to tg-cli (see https://github.com/vysheng/tg)
    telegram_cli_socket_path: path.join(__dirname, 'socket'), // path for socket file
    server_publickey_path: path.join(__dirname, 'tg/tg-server.pub'), // path to server key (traditionally, in %tg_cli_path%/tg-server.pub)
}

const Client = new TelegramAPI(config)

Client.connect(connection => {
    connection.on('message', message => {
        console.log('message : ', message)
        console.log('message event : ', message.event)
        console.log('message text : ', message.text)        
        console.log('message from :', message.from)
    })
    connection.on('error', e => {
        console.log('Error from Telegram API:', e)
    })
    connection.on('disconnect', () => {
        console.log('Disconnected from Telegram API')
    })
})
  

Комментарии:

1. есть ли способ получать сообщения с определенного канала, используя pytg.

2. @ycode где находится канал, с которого вы получаете сообщения? Или вы получаете только прямые сообщения?

3. что такое файл сокета?

Ответ №2:

Первый шаг — добавить бота telegram в качестве администратора канала, если нет, вы не сможете читать сообщения канала!!!

Комментарии:

1. Если ypu может использовать python, то вы можете захотеть использовать telethon