Aiogram发送转发消息出现问题
创始人
2024-07-31 21:30:19
0

当使用 Aiogram 发送转发消息时,可能会遇到消息未发送的问题。可以尝试使用以下代码序列化转发消息:

from aiogram.types import MessageEntity, InputMessageContent, InlineQueryResultArticle, InlineQuery
import json

async def on_inline_query(inline_query: InlineQuery):
    results = []
    forward_message = # 转发消息
    forward_message_text = forward_message.text
    entities = forward_message.entities

    input_message_content = InputMessageContent(
        message_text=forward_message_text,
        parse_mode='HTML'  # 或者 'Markdown'
    )

    # 序列化转发消息
    entities_json = json.dumps([entity.to_dict() for entity in entities])
    message_entity = MessageEntity(type=entities[0].type, offset=entities[0].offset, length=entities[0].length)
    message_entity_json = json.dumps(message_entity.to_dict(), ensure_ascii=False)

    # 添加转发消息到结果列表
    results.append(
        InlineQueryResultArticle(
            id='0',
            title='Forward Message',
            input_message_content=input_message_content,
            description=forward_message_text,
            reply_markup=None,
            url=None,
            hide_url=None,
            thumb_url=None,
            thumb_width=None,
            thumb_height=None,
            message_text=forward_message_text,
            message_entities=[message_entity_json],
            parse_mode='HTML'  # 或者 'Markdown'
        )
    )

    await inline_query.answer(results, cache_time=0)

上述代码中,我们对消息实体使用了 json.dumps 进行序列化。同时,使用 InlineQueryResultArticle 将转发消息作为内联查询结果返回。

这是发生转发消息发送问题时的一种解决方法。

相关内容

热门资讯

Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Aksnginxdomainb... 在AKS集群中,可以使用Nginx代理服务器实现根据域名进行路由。以下是具体步骤:部署Nginx i...
Alertmanager中的基... Alertmanager中可以使用repeat_interval选项指定在一个告警重复发送前必须等待...
AddSingleton在.N... 在C#中创建Singleton对象通常是通过私有构造函数和静态属性来实现,例如:public cla...