标签: python-telegram-bot

下载图像 Python Telegram API

我遵循了他们关于下载图像的简短教程,但遇到了一个例外:

telegram.photosize.PhotoSize object at ... is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

捕捉图像的功能如下所示:

def photo(bot, update):
    file_id = update.message.photo[-1]
    newFile = bot.getFile(file_id)
    newFile.download('test.jpg')
    bot.sendMessage(chat_id=update.message.chat_id, text="download succesfull")

photo_handler = MessageHandler(Filters.photo, photo)
dispatcher.add_handler(photo_handler)
Run Code Online (Sandbox Code Playgroud)

在这一点上,我不知道我做错了什么,也无法在网上找到任何解决方案。

python telegram python-telegram-bot

4
推荐指数
1
解决办法
4898
查看次数

如何从 Telegram 中的 UserID 获取用户名?

我正在使用Python-Telegram-Bot API 创建一个机器人。当人们启动机器人时,我会获取他们的用户 ID 和用户名。
用户 ID 永远不会更改,但用户可以随时更改用户名。
所以我有用户名和用户 ID,并且我收到了另一个用户名 - 我希望弄清楚该用户名是否属于现有列表中的某个人。
基本上需要从 userID 中找出用户名,或者是否有其他我可以接受的方式。

python-3.x telegram python-telegram-bot telegram-bot

4
推荐指数
1
解决办法
2万
查看次数

当机器人醒来时向所有用户发送消息

我最近开始摆弄 python,并且正在创建我的第一个电报机器人,主要用于管理我的 Raspberry Pi 以及与其连接的一些东西。机器人已经完成,但我想在机器人启动时向所有已经与机器人交互的用户发送一条消息,基本上是说“我准备好了!”,但我还没有找到任何信息关于它。

API 中是否有任何特定方法可以做到这一点?或者我应该创建另一个文件来存储所有用户的 chat_id 并用 python 读取它?

感谢大家的帮助!!问候!

python python-telegram-bot telegram-bot

4
推荐指数
1
解决办法
1万
查看次数

如何让telegram键盘按钮发出命令?

我刚刚使用 Telegram API 文档中的 .KeyboardButton 熟悉了 telegram 机器人的键盘按钮,但我有一个问题;到目前为止,我只能设计按钮,以便单击按钮后的输出与其标题/占位符相同,这对我想做的事情确实没有帮助。

我已经设置了命令并且所有命令都已设置,例如我希望标记为“规则”的按钮的输出为 /rules,以便启动命令操作,而不是机器人输出为“规则”。我正在使用 Python,尽管我对任何使用其他语言从事相同工作的人持开放态度。

python telegram python-telegram-bot telegram-bot php-telegram-bot

4
推荐指数
1
解决办法
6798
查看次数

Telegram user_id 的长度是多少?

我正在制作一个数据库,其中我的算法只接受来自电报 ID 长度为 9 的用户的查询。

user_id: 123456789;
length = user_id.length;
display(length);

OUTPUT: 9
Run Code Online (Sandbox Code Playgroud)

是否存在长度小于 9 的电报用户 ID?
任何人都可以提出建议,以便我也可以将我的算法更新为该 ID 的长度。

telegram python-telegram-bot telegram-bot lua-telegram-bot php-telegram-bot

4
推荐指数
2
解决办法
3701
查看次数

Python telegram bot 防洪超标

我使用python-telegram-bot开发电报机器人。

尽管使用了 MessageQueue (正如文档中提到的那样),我仍然得到

telegram.error.RetryAfter: Flood control exceeded. Retry in N seconds
Run Code Online (Sandbox Code Playgroud)

当我从客户端(通过非常非常快地按下回复键盘按钮)涌向我的机器人时,它会回答我。

MessageQueue 实际上可以工作,我可以看到一次发送大量消息(使用 for 循环)期间的延迟。我尝试了消息队列的不同值,但没有一个有帮助。

看起来机器人会被禁止使用电报,无论它实际发送的消息数量如何。

方法线程(同步或异步)不会改变任何内容。发生这种情况时,如何防止用户泛滥或避免禁止我的机器人?

python python-3.x telegram python-telegram-bot

4
推荐指数
1
解决办法
2万
查看次数

Telegram API 抛出 PeerFloodError:请求过多

我没有使用机器人 API。我正在使用 Telegram API 发送消息。消息很容易发送,但问题出现在 19 个用户之后。在第 20 个用户上,我收到 PeerFloodError。即使在搜索了很多之后,我也没有找到任何特定的限制,并且使用 sleep 也不起作用。请提出一种克服这个问题的方法。

代码

def send_message(root2, client):
    totalcount = 0
    for user in users:
        if totalcount >= len(users):
            root2.destroy()
            break

        if totalcount % 15 == 0 and totalcount != 0:
            print("Waiting for one minute...")
            time.sleep(60)

        if user not in users2 or user not in users3:
            totalcount += 1
            entity = client.get_entity(user)

            client.send_message(entity, message_str)
            time.sleep(8)
Run Code Online (Sandbox Code Playgroud)

python-3.x telegram python-telegram-bot telegram-bot telethon

4
推荐指数
1
解决办法
8320
查看次数

有什么方法可以从 Telegram 机器人打开应用程序吗?

我编写了一个 Telegram 机器人 (python-telegram-bot),我想知道是否有办法从该机器人打开应用程序。

更准确地说,机器人搜索 torrent 链接,最初的想法是将该链接直接发送到用户计算机中的 qBitTorrent,但不幸的是我陷入了这一步,所以目前我想给用户提供磁力链接,所以它可以粘贴到 qBitTorrent 应用程序中。问题是,如果能够从机器人自动打开应用程序,那就太棒了。

提前致谢!

python bittorrent python-3.x python-telegram-bot

4
推荐指数
1
解决办法
3221
查看次数

在python中添加与telethon的联系

最近我尝试使用 Telethon 在电报中添加联系人,根据本教程:1)在 api 电报 python Telethon 中添加新联系人 ,我使用了以下代码:

contact = InputPhoneContact(client_id=0, phone='+989122725691', first_name="user",
                        last_name="test")
result = ImportContactsRequest(contacts=[contact])
print(result)
Run Code Online (Sandbox Code Playgroud)

但是我在我的输出中得到了这个:

ImportContactsRequest(contacts=[InputPhoneContact(client_id=0, phone='+989122725691', first_name='user', last_name='test')])
Run Code Online (Sandbox Code Playgroud)

我可以找出我的问题所在,但是当我转到我的电报应用程序时,不会添加此联系人。

python-3.x telegram python-telegram-bot telegram-bot telethon

4
推荐指数
1
解决办法
2471
查看次数

如何使用 Telethon 将消息转发给其他联系人

我如何在收到来自联系人的消息后立即将其转发到另一个聊天?我创建这个例子只是为了测试路由,但它不起作用。

#!/usr/local/bin/python3
from telethon import TelegramClient, events

api_id = 9999900
api_hash = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
client = TelegramClient('session_name', api_id, api_hash)
client.start()

@client.on(events.NewMessage)
async def main(event):
    await client.send_message('Other People', 'Hello!') #Don't work. Keeps waiting forever

with client:
    client.run_until_disconnected()
Run Code Online (Sandbox Code Playgroud)

telegram python-telegram-bot telegram-bot telethon

4
推荐指数
1
解决办法
4051
查看次数