> For the complete documentation index, see [llms.txt](https://bothub.gitbook.io/project/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bothub.gitbook.io/project/advanced-tool/api/send-knowledge-base-message.md).

# 发送知识库条目

此API提供了发送Bothub后台中预定义的消息模板，但是对每个用户可以以自定义变量替换消息中占位符，以达到定制化的效果。 例如，我们在Bothub后台定义如下文本消息: "您的目前积分为" 而我们在发送信息时可以为每个用户指定参数为他的实际积分数。这样我们就实现了发送用户积分数量的功能。如果我们希望更改文字，或是使用除纯文字之外的模板，直接在Bothub后台修改模板即可，完全不需要任何代码级的修改。

## 发送请求

您可以用任意一个已经启用的API Key([怎样申请APIKey](/project/advanced-tool/api/use-api.md)) 向Bothub发起请求，向一个手机号或一个官网账号发送一条消息。这个请求的说明如下：

| 请求属性      | 属性名            | 说明                                                                             |
| --------- | -------------- | ------------------------------------------------------------------------------ |
| 地址        |                | <https://api.bothub.ai/api>                                                    |
| 请求方式      | POST           |                                                                                |
| Header    | APIKEY         | 您的API KEY                                                                      |
| Form Data | request.method | 需要调用的api。此处设置为send\_block                                                      |
| Form Data | request.id     | 用来唯一标识此发送请求的id。由调用方生成                                                          |
| Form Data | request.sync   | 为true或false。若为true，Bothub会等待发送完所有消息后再返回请求。若为false，则会立即返回，等到发送完消息后再发一个请求给api调用方 |
| Form Data | request.meta   | 预留字段                                                                           |
| Form Data | recipient      | 要发送消息的用户信息，只能指定一个用户                                                            |
| Form Data | message        | 要发送的消息。形式会在下方详述。                                                               |
| Form Data | params         | 要替换的参数。形式会在下方详述。                                                               |

### **请求样例**

```
{
    "recipient": {
        "id": "7819201"
    },
    "message": {
        "knowledge_base_name": "MyKB1", 
        "knowledge_base_item_name: "#kb_item1#"
    },
    "request": {
        "method": "send_block",
        "id" : "F4js0Za1",
        "sync": true,
        "meta": ""
    }
}
```

#### 同步方式请求返回值以及异步式调用回调内容 <a href="#tong-bu-fang-shi-qing-qiu-fan-hui-zhi-yi-ji-yi-bu-shi-tiao-yong-hui-tiao-nei-rong" id="tong-bu-fang-shi-qing-qiu-fan-hui-zhi-yi-ji-yi-bu-shi-tiao-yong-hui-tiao-nei-rong"></a>

请详见[请求返回值](https://bothubdocs.gitbook.io/project/~/edit/drafts/-LCWfeDNA9QGt2vCxD8D/untitled-2/api-jie-shao/untitled-1)

### 错误码列表

| 返回值   | 内容               |
| ----- | ---------------- |
| 10000 | 内部错误             |
| 10001 | 未指定API KEY       |
| 10002 | 无效的API KEY       |
| 10003 | 未指定Request id    |
| 10004 | 未指定调用API的种类      |
| 10005 | 无效的API种类         |
| 10005 | 无效的API种类         |
| 10006 | Bot不存在或者已经被删除    |
| 10007 | 未指定recipient字段   |
| 10008 | recipient结构不正确   |
| 10009 | 无效的用户指定方式        |
| 10010 | 用户不存在            |
| 10011 | Request id与之前的重复 |
| 10100 | 参数无效             |
| 18000 | 内部错误             |
| 19000 | 回调超时             |
| 20001 | 未定义Message字段     |
| 20002 | 未定义交易通知地址        |
| 20004 | Message字段结构错误    |

* 如果指定的用户是手机号，并且发送成功了，那么会返回用户信息，包含用户id，姓名。以后指定该用户就可以使用id。
* 如果选择的是异步方式，那么返回值会作为参数发送到商户指定的回调地址处。

### 消息格式

样例格式如下

```
"message": {
    "knowledge_base_name": "MyKB",
    "knowledge_base_item_name": "#kb-item-1.md#"
}
```

在发送知识库条目之前，需要确保知识库已经导入到Bothub的后台中.

**knowledge\_base\_name**为必填，为创建知识库时输入的知识库名称（如下图的Bothub）&#x20;

![](https://3545383198-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LBxiFMKIFEMsz8J7IuU%2F-LCWsZYrv8U7bETGyjzP%2F-LCWutRQsxbZLfvXLt0e%2Fp3f3p701.png?alt=media\&token=72b22667-8e0a-4b9e-bb38-2c161d94cd53)

**knowledge\_base\_item\_name** 为必填，为知识库条目的名称，为知识库条目链接下方显示的以##包含的字符串。可以点击右方的copy to clipboard进行拷贝。
