注意:请确保使用 telethon.client 包中描述的方法! 本节只是对使用客户端的介绍,但所有可用的方法都在telethon.client 包的参考资料中,包括对它们的详细描述。
TelegramClient 是这个库的核心类,也是你大部分时间都会用到的类。出于这个原因,了解它所提供的东西是很重要的。
既然我们在用Python工作,就不能忘记我们可以在任何时候执行 help(client) 或 help(TelegramClient) 来获得更详细的描述和所有可用方法的列表。从一个交互式的Python会话中调用help(),总是会列出任何对象的所有方法,甚至是你的对象的所有方法!
与Telegram API的互动是通过发送请求完成的,也就是API上列出的任何 "方法"。TelegramClient类中有一些方法(而且还在不断增加!),它们将你从手动导入你需要的请求中抽象出来。
例如,检索你自己的用户可以在一行中完成(假设你有 from telethon import
sync 或 import telethon.sync)
myself = client.get_me()
在内部,这个方法已经向Telegram发送了一个请求,后者回复了你自己的用户信息,然后从他们的回复中提取了所需的信息。
如果你想检索任何其他用户、聊天或频道(频道是聊天的一个特殊子集),你想检索他们的 "对象"。这就是库中提到的任何一个对象的方式。
# 该方法将推断出你传递了一个用户名
# 它也接受电话号码
#从你的联系人列表中获取用户
lonami = client.get_entity('lonami')
所谓的 "对象"是另一个重要的整体概念,但现在你不需要担心这个问题。 只需知道它们是获取用户、聊天或频道信息的一个好方法。
也有许多其他快速脚本的常用方法。
# 注意 你可以使用 'me' 或是 'self' 给自己发消息
client.send_message('username', 'Hello World from Telethon!')
# .send_message 的 默认解析模式是 markdown, 所以你可以使用
# **bold**, __italics__, [links](https://example.com), `code`,
# 也可以用 [mentions](@username)/[mentions](tg://user?id=123456789)
client.send_message('username', '**Using** __markdown__ `too`!')
client.send_file('username', '/home/myself/Pictures/holidays.jpg')
# utils包有一些好用的方法 , 例如: .get_display_name()
from telethon import utils
for message in client.iter_messages('username', limit=10):
print(utils.get_display_name(message.sender), message.message)
# Dialogs 是你当前的对话列表
for dialog in client.get_dialogs(limit=10):
print(dialog.name, dialog.draft.text)
# 默认目录是程序运行的目录
client.download_profile_photo('username')
# 调用 .disconnect() 当你的程序结束的时候
client.disconnect()
记住,你可以对Telegram返回的任何对象调用 .stringify() 来漂亮地打印它。调用 str(result) 做同样的操作,但是在单行上。