我找到了聊天记录并在那里找到了贴纸。我想从我的历史记录中获取所有贴纸并在我的机器人中使用它。但有一个问题:Telegram Api 标识符的格式与 Telegram Bot Api 格式不同,例如:
telegram api 贴纸 ID - 280235483508769025;
电报机器人 API 贴纸 ID - CAADAgADOQADfyesDlKEqOOd72VKAg。
(顺便说一下,这是不同的贴纸)
那么,有没有办法将贴纸的 Telegram Api 格式的 id 转换为 Telegram Bot Api 格式的 id?280235483508769025 -> CAADAgADOQADfyesDlKEqOOd72VKAg?
PS Telegram Api ID 格式 - https://core.telegram.org/type/InputDocument
Telegram Bot Api ID 格式 - https://core.telegram.org/bots/api#sendphoto
我有一个机器人,它运行得很好。但是我如何引用触发机器人的消息以便用户知道机器人回复了他?
这是我用来返回消息的代码。
return res.status(200).send({
method: 'sendMessage',
chat_id,
text: `Hello, welcome to <bot_name>`,
parse_mode: 'Markdown'
})
Run Code Online (Sandbox Code Playgroud)
我想在回复中引用该消息,如下所示:
我正在构建一个基于 Django 的项目,我的目的之一是拥有一个从 Telegram 组接收信息的 Telegram 机器人。我能够实现机器人在 Telegram 中发送消息,没有任何问题。
目前,我有几个与 Beat 一起运行的 Celery 任务以及 Django Web(已解耦)。这里一切都好。
我已经看到 python-telegram-bot 正在一个示例中运行一个函数(https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/echobot.py)它正在等待空闲以接收来自 Telegram 的数据。现在,我在 Celery 中的所有任务此时都是周期性的,并且由 Beat 每 10 或 60 分钟调用一次。如何在我的配置中使用 Celery 运行这个非周期性任务?我说非周期性是因为我知道它将等待内容直到被手动中断。
姜戈~=3.2.6
芹菜~=5.1.2
CELERY_BEAT_SCHEDULE = {
'task_1': {
'task': 'apps.envc.tasks.Fetch1',
'schedule': 600.0,
},
'task_2': {
'task': 'apps.envc.tasks.Fetch2',
'schedule': crontab(minute='*/60'),
},
'task_3': {
'task': 'apps.envc.tasks.Analyze',
'schedule': 600,
},
Run Code Online (Sandbox Code Playgroud)
}
在我的tasks.py 中,我有这样的任务之一:
@celery_app.task(name='apps.envc.tasks.TelegramBot')
def TelegramBot():
status = start_bot()
return status
Run Code Online (Sandbox Code Playgroud)
作为 start_bot 实现,我只是复制了 echobot.py 示例,并在其中添加了我的 TOKEN(当然示例中不同命令的函数也在那里)。
我尝试使用以下命令将 mp3 文件流式传输到 Telegram RTMP live:
ffmpeg -re -i 1.mp3 -c copy -f mp3 rtmps://dc4-1.rtmp.t.me/s/145158:AtyF3rrME2nHEkqGA
Run Code Online (Sandbox Code Playgroud)
但我在溪流中听不到任何声音。
我正在尝试使用 Telegram API 机器人向 telegram 发送消息。
我想发出 GET 请求,将文本和图像发送到我的电报频道。
现在 fetch 看起来像这样:
telegram_msg = requests.get('https://api.telegram.org/<botname>:botAPI/sendMessage?chat_id=<chat_id>=some text')Run Code Online (Sandbox Code Playgroud)
如何包含位于此处的图像并在一条消息中同时发送文本和图像?
感谢您的帮助。
UPD:我可以使用 sendPhoto 发送图像,但是如何将这两个请求合并为一个?这样我就可以同时发送图像和文本吗?
我想从接收更新中读取用户名,但我遇到了一个特殊问题.
对于某些用户,$message['from']['username']包含Telegram用户名,但是对于某些用户,此参数未定义.
如何username使用Telegram Bot API 可靠地接收用户名(获取字段)?