NoneBot.adapters.ding 模块 | NoneBot
Description: 跨平台 Python 异步 QQ 机器人框架

# # NoneBot.adapters.ding 模块

## # 钉钉群机器人 协议适配

协议详情请看: 钉钉文档
(opens new window)

# # NoneBot.adapters.ding.config 模块

## # class `Config`

钉钉配置类

- 配置项

  - `access_token` / `ding_access_token`: 钉钉令牌

  - `secret` / `ding_secret`: 钉钉 HTTP 上报数据签名口令

# # NoneBot.adapters.ding.exception 模块

## # exception `DingAdapterException`

基类：`nonebot.exception.AdapterException`

- 说明

  钉钉 Adapter 错误基类

## # exception `ActionFailed`

基类：`nonebot.exception.ActionFailed`, `nonebot.adapters.ding.exception.DingAdapterException`

- 说明

  API 请求返回错误信息。

- 参数

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

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

## # exception `NetworkError`

基类：`nonebot.exception.NetworkError`, `nonebot.adapters.ding.exception.DingAdapterException`

- 说明

  网络错误。

- 参数

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

## # exception `SessionExpired`

基类：`nonebot.adapters.ding.exception.ApiNotAvailable`, `nonebot.adapters.ding.exception.DingAdapterException`

- 说明

  发消息的 session 已经过期。

# # NoneBot.adapters.ding.bot 模块

## # class `Bot`

基类：`nonebot.adapters._base.Bot`

钉钉 协议 Bot 适配。继承属性参考 BaseBot 。

### # property `type`

- 返回: `"ding"`

### # async classmethod `check_permission(driver, request)`

- 说明

  钉钉协议鉴权。参考 鉴权
  (opens new window)

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

- 说明

  调用 钉钉 协议 API

- 参数

  - `api: str`: API 名称

  - `event: Optional[MessageEvent]`: Event 对象

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

- 返回

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

- 异常

  - `NetworkError`: 网络错误

  - `ActionFailed`: API 调用失败

### # async `send(event, message, at_sender=False, webhook=None, secret=None, **kwargs)`

- 说明

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

- 参数

  - `event: Event`: Event 对象

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

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

  - `webhook: Optional[str]`: 该条消息将调用的 webhook 地址。不传则将使用 sessionWebhook，若其也不存在，该条消息不发送，使用自定义 webhook 时注意你设置的安全方式，如加关键词，IP地址，加签等等。

  - `secret: Optional[str]`: 如果你使用自定义的 webhook 地址，推荐使用加签方式对消息进行验证，将 机器人安全设置页面，加签一栏下面显示的SEC开头的字符串 传入这个参数即可。

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

- 返回

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

- 异常

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

  - `NetworkError`: 网络错误

  - `ActionFailed`: API 调用失败

# # NoneBot.adapters.ding.message 模块

## # class `MessageSegment`

基类：`nonebot.adapters._base.MessageSegment`[`Message`]

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

### # static `atAll()`

@全体

### # static `atMobiles(*mobileNumber)`

@指定手机号人员

### # static `atDingtalkIds(*dingtalkIds)`

@指定 id，@ 默认会在消息段末尾。 所以你可以在消息中使用 @{senderId} 占位，发送出去之后 @ 就会出现在占位的位置： `python message = MessageSegment.text(f"@{event.senderId}，你好") message += MessageSegment.atDingtalkIds(event.senderId)`

### # static `text(text)`

发送 `text` 类型消息

### # static `image(picURL)`

发送 `image` 类型消息

### # static `extension(dict_)`

标记 text 文本的 extension 属性，需要与 text 消息段相加。

### # static `code(code_language, code)`

发送 code 消息段

### # static `markdown(title, text)`

发送 `markdown` 类型消息

### # static `actionCardSingleBtn(title, text, singleTitle, singleURL)`

发送 `actionCardSingleBtn` 类型消息

### # static `actionCardMultiBtns(title, text, btns, hideAvatar=False, btnOrientation='1')`

发送 `actionCardMultiBtn` 类型消息

- 参数

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

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

### # static `feedCard(links)`

发送 `feedCard` 类型消息

- 参数

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

## # class `Message`

基类：`nonebot.adapters._base.Message`[`nonebot.adapters.ding.message.MessageSegment`]

钉钉 协议 Message 适配。

# # NoneBot.adapters.ding.event 模块

## # class `Event`

基类：`nonebot.adapters._base.Event`

钉钉协议事件。各事件字段参考 钉钉文档
(opens new window)

## # class `ConversationType`

基类：`str`, `enum.Enum`

An enumeration.

## # class `MessageEvent`

基类：`nonebot.adapters.ding.event.Event`

消息事件

## # class `PrivateMessageEvent`

基类：`nonebot.adapters.ding.event.MessageEvent`

私聊消息事件

## # class `GroupMessageEvent`

基类：`nonebot.adapters.ding.event.MessageEvent`

群消息事件

Contents

- 钉钉群机器人 协议适配
- class Config
- exception DingAdapterException
- exception ActionFailed
- exception NetworkError
- exception SessionExpired
- class Bot
  - property type
  - async classmethod check_permission(driver, request)
  - async call_api(api, event=None, **data)
  - async send(event, message, at_sender=False, webhook=None, secret=None, **kwargs)
- class MessageSegment
  - static atAll()
  - static atMobiles(*mobileNumber)
  - static atDingtalkIds(*dingtalkIds)
  - static text(text)
  - static image(picURL)
  - static extension(dict_)
  - static code(code_language, code)
  - static markdown(title, text)
  - static actionCardSingleBtn(title, text, singleTitle, singleURL)
  - static actionCardMultiBtns(title, text, btns, hideAvatar=False, btnOrientation='1')
  - static feedCard(links)
- class Message
- class Event
- class ConversationType
- class MessageEvent
- class PrivateMessageEvent
- class GroupMessageEvent