Update docs

This commit is contained in:
Richard Chien 2019-01-05 22:36:55 +08:00
parent 16c15bca41
commit 99fd832441
3 changed files with 23 additions and 5 deletions

View File

@ -1838,6 +1838,22 @@ sidebar: auto
获取当前事件上下文的 `user_id` 字段。
#### _readonly property_ `self_id` <Badge text="1.1.0+"/>
- **类型:** `int`
- **说明:**
当前 session 对应的 QQ 机器人账号,在多个机器人账号使用同一个 NoneBot 后端时可用于区分当前收到消息或事件的是哪一个机器人。
等价于 `session.ctx['self_id']`
- **用法:**
```python
await bot.send_private_msg(self_id=session.self_id, user_id=12345678, message='Hello')
```
#### _coroutine_ `send(message, *, at_sender=False, ensure_private=False, ignore_failure=True, **kwargs)`
- **说明:**
@ -1853,7 +1869,7 @@ sidebar: auto
- **返回:**
- `Any`: 返回 CQHTTP 插件发送消息接口的调用返回值,具体见 aiocqhttp 的 [API 调用](https://github.com/richardchien/python-aiocqhttp#api-%E8%B0%83%E7%94%A8)
- `Any` <Badge text="1.1.0+"/>: 返回 CQHTTP 插件发送消息接口的调用返回值,具体见 aiocqhttp 的 [API 调用](https://github.com/richardchien/python-aiocqhttp#api-%E8%B0%83%E7%94%A8)
- **异常:**
@ -1980,7 +1996,7 @@ async def _(session):
- **返回:**
- `Any`: 返回 CQHTTP 插件发送消息接口的调用返回值,具体见 aiocqhttp 的 [API 调用](https://github.com/richardchien/python-aiocqhttp#api-%E8%B0%83%E7%94%A8)
- `Any` <Badge text="1.1.0+"/>: 返回 CQHTTP 插件发送消息接口的调用返回值,具体见 aiocqhttp 的 [API 调用](https://github.com/richardchien/python-aiocqhttp#api-%E8%B0%83%E7%94%A8)
- **异常:**

View File

@ -9,6 +9,7 @@ sidebar: auto
- 插件模块现可通过 `__plugin_name__``__plugin_usage__` 来分别指定插件名称和插件使用方法(两者均不强制,若不设置则默认为 None
- 新增 `none.get_loaded_plugins()` 函数用于获取所有已加载的插件集合
- `BaseSession.send()` 方法和 `none.helpers.send()` 函数现返回 API 调用返回值(即 CQHTTP 插件的返回结果的 `data` 字段)
- `BaseSession` 新增 `self_id` 属性,可通过 `session.self_id` 代替 `session.ctx['self_id']` 来获取当前机器人账号
## v1.0.0

View File

@ -12,11 +12,12 @@ await bot.send_private_msg(user_id=12345678, message='你好~')
这里,`send_private_msg` 实际上对应 CQHTTP 的 [`/send_private_msg` 接口](https://cqhttp.cc/docs/#/API?id=send_private_msg-%E5%8F%91%E9%80%81%E7%A7%81%E8%81%8A%E6%B6%88%E6%81%AF),其它接口同理。
通过这种方式调用 API 时,需要注意点:
通过这种方式调用 API 时,需要注意下面几点:
1. **所有参数必须为命名参数keyword argument**,否则无法正确调用
2. 这种调用全都是异步调用,因此需要适当 `await`
2. **调用失败时(没有权限、对方不是好友、无 API 连接等)可能抛出 `nonebot.CQHttpError` 异常**,注意捕获
2. 这种调用**全都是异步调用**,因此需要适当 `await`
3. **调用失败时(没有权限、对方不是好友、无 API 连接等)可能抛出 `nonebot.CQHttpError` 异常**,注意捕获
4. **当多个机器人使用同一个 NoneBot 后端时**,可能需要加上参数 `self_id=<机器人QQ号>`,例如 `await bot.get_group_list(self_id=session.ctx['self_id'])`
另外,在需要动态性的场合,除了使用 `getattr()` 方法外,还可以直接调用 `bot.call_action()` 方法,传入 `action``params` 即可,例如上例中,`action` 为 `'send_private_msg'``params` 为 `{'user_id': 12345678, 'message': '你好~'}`