---
contentSidebar: true
sidebarDepth: 0
---

# NoneBot.adapters.ding 模块


## _exception_ `DingAdapterException`

基类：[`nonebot.exception.AdapterException`](../exception.md#nonebot.exception.AdapterException)


* **说明**

    钉钉 Adapter 错误基类



## _exception_ `ActionFailed`

基类：[`nonebot.exception.ActionFailed`](../exception.md#nonebot.exception.ActionFailed), `nonebot.adapters.ding.exception.DingAdapterException`


* **说明**

    API 请求返回错误信息。



* **参数**

    
    * `errcode: Optional[int]`: 错误码


    * `errmsg: Optional[str]`: 错误信息



## _exception_ `ApiNotAvailable`

基类：[`nonebot.exception.ApiNotAvailable`](../exception.md#nonebot.exception.ApiNotAvailable), `nonebot.adapters.ding.exception.DingAdapterException`


## _exception_ `NetworkError`

基类：[`nonebot.exception.NetworkError`](../exception.md#nonebot.exception.NetworkError), `nonebot.adapters.ding.exception.DingAdapterException`


* **说明**

    网络错误。



* **参数**

    
    * `retcode: Optional[int]`: 错误码



## _exception_ `SessionExpired`

基类：[`nonebot.exception.ApiNotAvailable`](../exception.md#nonebot.exception.ApiNotAvailable), `nonebot.adapters.ding.exception.DingAdapterException`


* **说明**

    发消息的 session 已经过期。



## _class_ `Bot`

基类：[`nonebot.adapters.BaseBot`](README.md#nonebot.adapters.BaseBot)

钉钉 协议 Bot 适配。继承属性参考 [BaseBot](./#class-basebot) 。


### _property_ `type`


* 返回: `"ding"`


### _async classmethod_ `check_permission(driver, connection_type, headers, body)`


* **说明**

    钉钉协议鉴权。参考 [鉴权](https://ding-doc.dingtalk.com/doc#/serverapi2/elzz1p)



### _async_ `handle_message(body)`


* **说明**

    处理上报消息的函数，转换为 `Event` 事件后调用 `nonebot.message.handle_event` 进一步处理事件。



* **参数**

    
    * `message: dict`: 收到的上报消息



### _async_ `call_api(api, event=None, **data)`


* **说明**

    调用 钉钉 协议 API



* **参数**

    
    * `api: str`: API 名称


    * `**data: Any`: API 参数



* **返回**

    
    * `Any`: API 调用返回数据



* **异常**

    
    * `NetworkError`: 网络错误


    * `ActionFailed`: API 调用失败



### _async_ `send(event, message, at_sender=False, **kwargs)`


* **说明**

    根据 `event`  向触发事件的主体发送消息。



* **参数**

    
    * `event: Event`: Event 对象


    * `message: Union[str, Message, MessageSegment]`: 要发送的消息


    * `at_sender: bool`: 是否 @ 事件主体


    * `**kwargs`: 覆盖默认参数



* **返回**

    
    * `Any`: API 调用返回数据



* **异常**

    
    * `ValueError`: 缺少 `user_id`, `group_id`


    * `NetworkError`: 网络错误


    * `ActionFailed`: API 调用失败



## _class_ `Event`

基类：[`nonebot.adapters.BaseEvent`](README.md#nonebot.adapters.BaseEvent)

钉钉 协议 Event 适配。继承属性参考 [BaseEvent](./#class-baseevent) 。


### _property_ `raw_event`

原始上报消息


### _property_ `id`


* 类型: `Optional[str]`


* 说明: 消息 ID


### _property_ `name`


* 类型: `str`


* 说明: 事件名称，由 type.\`detail_type\` 组合而成


### _property_ `self_id`


* 类型: `str`


* 说明: 机器人自身 ID


### _property_ `time`


* 类型: `int`


* 说明: 消息的时间戳，单位 s


### _property_ `type`


* 类型: `str`


* 说明: 事件类型


### _property_ `detail_type`


* 类型: `str`


* 说明: 事件详细类型


### _property_ `sub_type`


* 类型: `None`


* 说明: 钉钉适配器无事件子类型


### _property_ `user_id`


* 类型: `Optional[str]`


* 说明: 发送者 ID


### _property_ `group_id`


* 类型: `Optional[str]`


* 说明: 事件主体群 ID


### _property_ `to_me`


* 类型: `Optional[bool]`


* 说明: 消息是否与机器人相关


### _property_ `message`


* 类型: `Optional[Message]`


* 说明: 消息内容


### _property_ `reply`


* 类型: `None`


* 说明: 回复消息详情


### _property_ `raw_message`


* 类型: `Optional[str]`


* 说明: 原始消息


### _property_ `plain_text`


* 类型: `Optional[str]`


* 说明: 纯文本消息内容


### _property_ `sender`


* 类型: `Optional[dict]`


* 说明: 消息发送者信息


## _class_ `MessageSegment`

基类：[`nonebot.adapters.BaseMessageSegment`](README.md#nonebot.adapters.BaseMessageSegment)

钉钉 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。


### _static_ `actionCardSingleMultiBtns(title, text, btns=[], hideAvatar=False, btnOrientation='1')`


* **参数**

    
    * `btnOrientation`: 0：按钮竖直排列 1：按钮横向排列


    * `btns`: [{ "title": title, "actionURL": actionURL }, ...]



### _static_ `feedCard(links=[])`


* **参数**

    
    * `links`: [{ "title": xxx, "messageURL": xxx, "picURL": xxx }, ...]



### _static_ `empty()`

不想回复消息到群里


## _class_ `Message`

基类：[`nonebot.adapters.BaseMessage`](README.md#nonebot.adapters.BaseMessage)

钉钉 协议 Message 适配。
