如何以编程方式发送和接收 Telegram 消息?
How do I send & receives Telegram messages programmatically?
我想创建一个应用程序,通过 phone 号码、and/or 电报 ID 向不同的人发送电报消息。
我听说过 "Telegram Bot API",但据我了解它有一些限制(比如它不能发送消息,除非用户授权它并向它发送第一条消息,但它不会支持使用phone号发送消息)
还有 "Telegram API",看起来工作和编码很多..?我是一名单人开发人员,我不想花数年时间从头开始创建一个与电报服务器通信并执行所有协议的电报应用程序,然后我必须不断更新它,依此类推。
我只想要一些易于编码和维护的东西,并且可以使用我的电报帐户以编程方式 send/receive 消息。而已。像 :
send.message(phone number, message)
或某种 REST API 让我验证我的电报帐户,然后提供我可以用来向联系人发送消息的方法。
关于如何实现这个的任何想法?任何指针将不胜感激!
看看像 telethon or pyrogram 这样的 MTProto 库。它们是用户友好的(有很多帮助函数来抽象原始电报 api 调用,它们的界面有点像电报机器人 api)
这是一个示例代码(来自 telethon 文档):
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 send messages to yourself...
await client.send_message('me', 'Hello, myself!')
# ...to some chat ID
await client.send_message(-100123456, 'Hello, group!')
# ...to your contacts
await client.send_message('+34600123123', 'Hello, friend!')
# ...or even to any username
await client.send_message('TelethonChat', 'Hello, Telethon!')
with client:
client.loop.run_until_complete(main())
实际上,telegram 在为其机器人程序提供强大但非常简单的 API 方面做得不错(注意: 您也可以使用 telegram 应用程序,例如 MadelineProto or telegram CLI 发送消息,这与使用 Bot APIs 不同。应用程序就像您的 mobile/desktop 应用程序,使用具有特定认证 phone 号码的真实帐户,您可以做大部分事情您可以使用 phone 应用程序执行的任何操作。但这是另一回事)。
关于使用机器人发送消息,您可以找到所有文档 here。要使用这些 API,您需要:
- 使用 Bot Father 机器人创建一个 bot:他将帮助您创建一个机器人,并最终会给您一些您应该与您的机器人一起使用的秘密令牌
- 一些用户应该“/start”你的机器人。启动机器人或与用户进行任何通信后,您有两种不同的选择:(i) 您可以使用 update method or (ii) setting a webhook 轮询来自 Telegram 服务器的更新来读取更新:这方式,电报将调用该 webhook 让您通知消息。无论您使用哪种方式,要将消息发送到您需要该用户的所谓 "chat_id" 的帐户(并且您应该使用上述方法之一获取它)
- 最后一步是发送消息:对于最简单的情况,您想发送一个简单的 text message 给一个具有特定 chat_id 的人。您只需要调用此 URL(即 API):
https://api.telegram.org/bot{BOTTOKEN}/sendMessage?chat_id={CHAT_ID}&text={SOME_TEXT}
通过这种调用 REST api,您可以调用许多函数,这只是第一步,您可以做更复杂、更有趣的事情!对于许多语言,有一些包可以与 API 一起使用,这使得开发人员的一切都变得简单和抽象。可以找到最流行的软件包列表 here。
我想创建一个应用程序,通过 phone 号码、and/or 电报 ID 向不同的人发送电报消息。
我听说过 "Telegram Bot API",但据我了解它有一些限制(比如它不能发送消息,除非用户授权它并向它发送第一条消息,但它不会支持使用phone号发送消息)
还有 "Telegram API",看起来工作和编码很多..?我是一名单人开发人员,我不想花数年时间从头开始创建一个与电报服务器通信并执行所有协议的电报应用程序,然后我必须不断更新它,依此类推。
我只想要一些易于编码和维护的东西,并且可以使用我的电报帐户以编程方式 send/receive 消息。而已。像 :
send.message(phone number, message)
或某种 REST API 让我验证我的电报帐户,然后提供我可以用来向联系人发送消息的方法。
关于如何实现这个的任何想法?任何指针将不胜感激!
看看像 telethon or pyrogram 这样的 MTProto 库。它们是用户友好的(有很多帮助函数来抽象原始电报 api 调用,它们的界面有点像电报机器人 api)
这是一个示例代码(来自 telethon 文档):
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 send messages to yourself...
await client.send_message('me', 'Hello, myself!')
# ...to some chat ID
await client.send_message(-100123456, 'Hello, group!')
# ...to your contacts
await client.send_message('+34600123123', 'Hello, friend!')
# ...or even to any username
await client.send_message('TelethonChat', 'Hello, Telethon!')
with client:
client.loop.run_until_complete(main())
实际上,telegram 在为其机器人程序提供强大但非常简单的 API 方面做得不错(注意: 您也可以使用 telegram 应用程序,例如 MadelineProto or telegram CLI 发送消息,这与使用 Bot APIs 不同。应用程序就像您的 mobile/desktop 应用程序,使用具有特定认证 phone 号码的真实帐户,您可以做大部分事情您可以使用 phone 应用程序执行的任何操作。但这是另一回事)。
关于使用机器人发送消息,您可以找到所有文档 here。要使用这些 API,您需要:
- 使用 Bot Father 机器人创建一个 bot:他将帮助您创建一个机器人,并最终会给您一些您应该与您的机器人一起使用的秘密令牌
- 一些用户应该“/start”你的机器人。启动机器人或与用户进行任何通信后,您有两种不同的选择:(i) 您可以使用 update method or (ii) setting a webhook 轮询来自 Telegram 服务器的更新来读取更新:这方式,电报将调用该 webhook 让您通知消息。无论您使用哪种方式,要将消息发送到您需要该用户的所谓 "chat_id" 的帐户(并且您应该使用上述方法之一获取它)
- 最后一步是发送消息:对于最简单的情况,您想发送一个简单的 text message 给一个具有特定 chat_id 的人。您只需要调用此 URL(即 API):
https://api.telegram.org/bot{BOTTOKEN}/sendMessage?chat_id={CHAT_ID}&text={SOME_TEXT}
通过这种调用 REST api,您可以调用许多函数,这只是第一步,您可以做更复杂、更有趣的事情!对于许多语言,有一些包可以与 API 一起使用,这使得开发人员的一切都变得简单和抽象。可以找到最流行的软件包列表 here。