问题描述
我想创建一个小脚本,该脚本将从公共频道(我不是该频道的管理员)中获取电报文本.
I would like to create a small script that will fetch Telegram texts from a public channel (I am not the channel's admin).
我在这里发现了另一个问题:从Telegram阅读公共频道的消息
我已经尝试按照答案中的说明使用Telethon,但是没有用:
I've found another question asked here:Read the messages of the public channels from Telegram
I've tried using Telethon as said in the answer, but it didn't work:
from telethon.tl.functions.contacts import ResolveUsernameRequest
import telethon
client = telethon.TelegramClient("session.txt", api_id=XYZ, api_hash='XYZ')
client.connect()
response = client.invoke(ResolveUsernameRequest("test"))
print(response.channel_id)
print(response.access_hash)
引发此错误:
C:/Users/mypc/PycharmProjects/untitled/aa.py:5: RuntimeWarning: coroutine 'TelegramBaseClient.connect' was never awaited
client.connect()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
File "C:/Users/mypc/PycharmProjects/untitled/aa.py", line 6, in <module>
response = client.invoke(ResolveUsernameRequest("test"))
AttributeError: 'TelegramClient' object has no attribute 'invoke'
我尝试阅读API文档,但是我不完全了解这些调用的工作方式:
I've tried reading the API documentation, but I didn't fully understand how those calls work:
https://core.telegram.org/method/channels.joinChannel
https://core.telegram.org/method/channels.getMessages
如果有人能向我解释这些工作原理,我将不胜感激.
I'd be grateful if someone could explain to me how those work.
推荐答案
该答案非常古老.如果我们检查 Telethon的快速入门,我们将有足够的代码来做你所需要的:
That answer is very old. If we check Telethon's Quick-Start we have enough code to do what you need:
from telethon import TelegramClient
# Remember to use your own values from my.telegram.org!
api_id = 12345
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)
async def main():
# You can print the message history of any chat:
async for message in client.iter_messages('USERNAME OF THE CHANNEL'):
print(message.sender.username, message.text)
with client:
client.loop.run_until_complete(main())
这篇关于使用电报API阅读公共频道文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!