#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