mirai/mirai-api-http/README_CH.md
2020-02-05 00:25:05 +08:00

6.8 KiB
Raw Blame History

mirai-api-http

Mirai-API-http 提供HTTP API供所有语言使用mirai

快速开始

fun main() {
    val bot = Bot(123456789, "password")

    bot.login()

    MiraiHttpAPIServer.start()
    
    bot.network.awaitDisconnection()
}

开始会话-认证(Authorize)

[POST] /auth

使用此方法验证你的身份,并返回一个会话

请求:

{
    "authKey": "U9HSaDXl39ksd918273hU"
}
名字 类型 可选 举例 说明
authKey String false "U9HSaDXl39ksd918273hU" 创建Mirai-Http-Server时生成的key可在启动时指定或随机生成

响应: 返回(成功):

{
    "code": 0,
    "session": "UnVerifiedSession"
}
名字 类型 举例 说明
code Int 0 返回状态码
session String "UnVerifiedSession" 你的session key

状态码:

代码 原因
0 正常
1 错误的MIRAI API HTTP auth key

session key 是使用以下方法必须携带的
session key 使用前必须进行校验和绑定指定的Bot每个Session只能绑定一个Bot但一个Bot可有多个Session

校验Session

[post] /verify

使用此方法校验并激活你的Session同时将Session与一个已登录的Bot绑定

请求:

{
    "sessionKey": "UnVerifiedSession",
    "qq": 123456789
}
名字 类型 可选 举例 说明
sessionKey String false "UnVerifiedSession" 你的session key
qq Long false 123456789 Session将要绑定的Bot的qq号

响应: 返回统一状态码(后续不再赘述)

{
    "code": 0,
    "msg": "success"
}
状态码 原因
0 正常
1 错误的auth key
2 绑定的Bot不存在
3 Session失效或不存在
4 Session未认证(未激活)
5 发送消息目标不存在(指定对象不存在)
400 错误的访问,如参数错误等

发送好友消息

[POST] /sendFriendMessage

使用此方法向指定好友发送消息

请求

{
    "sessionKey": "YourSession",
    "target": 987654321,
    "messageChain": [
        { "type": "Plain", "text":"hello\n" },
        { "type": "Plain", "text":"world" }
    ]
}
名字 类型 可选 举例 说明
sessionKey String false YourSession 已经激活的Session
target Long false 987654321 发送消息目标好友的QQ号
messageChain Array false [] 消息链,是一个消息对象构成的数组

响应: 返回统一状态码

{
    "code": 0,
    "msg": "success"
}

发送群消息

[POST] /sendGroupMessage

使用此方法向指定群发送消息

请求

{
    "sessionKey": "YourSession",
    "target": 987654321,
    "messageChain": [
        { "type": "Plain", "text":"hello\n" },
        { "type": "Plain", "text":"world" }
    ]
}
名字 类型 可选 举例 说明
sessionKey String false YourSession 已经激活的Session
target Long false 987654321 发送消息目标群的群号
messageChain Array false [] 消息链,是一个消息对象构成的数组

响应: 返回统一状态码

{
    "code": 0,
    "msg": "success"
}

获取Bot收到的消息

[GET] /fetchMessage?sessionKey=YourSessionKey&count=10

请求:

名字 可选 举例 说明
sessionKey false YourSessionKey 你的session key
count false 10 获取消息的数量

响应: 返回JSON对象

[{
    "type": "GroupMessage",        // 消息类型GroupMessage或FriendMessage
	"messageChain": [{             // 消息链,是一个消息对象构成的数组
        "type": "Plain",
        "text": "Miral牛逼"
    }],
    "sender": {                      // 发送者信息
        "id": 123456789,             // 发送者的QQ号码
        "memberName": "化腾",        // 发送者的群名片
        "permission": "MEMBER",      // 发送者的群限权OWNER、ADMINISTRATOR或MEMBER
        "group": {                   // 消息发送群的信息
            "id": 1234567890,        // 发送群的群号
            "name": "Miral Technology" // 发送群的群名称
        }
    }
 },
 {
    "type": "FriendMessage",         // 消息类型GroupMessage或FriendMessage
        "messageChain": [{           // 消息链,是一个消息对象构成的数组
        "type": "Plain",
        "text": "Miral牛逼"
    }],
    "sender": {                      // 发送者信息
        "id": 1234567890,            // 发送者的QQ号码
        "nickName": "",              // 发送者的昵称
        "remark": ""                 // 发送者的备注
    }
}]

消息类型一览

消息是构成消息链的基本对象,目前支持的消息类型有

  • At@消息
  • Face表情消息
  • Plain文字消息
  • Image图片消息
  • XmlXml卡片消息
  • 敬请期待

At

{
    "type": "At",
    "target": 123456,
    "display": "@Mirai"
}
名字 类型 说明
target Long 群员QQ号
display String @时显示的文本如:"@Mirai"

Face

{
    "type": "Face",
    "faceID": 123
}
名字 类型 说明
faceID Int QQ表情编号

Plain

{
    "type": "Plain",
    "text": "Mirai牛逼"
}
名字 类型 说明
text String 文字消息

Image

{
    "type": "Image"
    // 暂时不支持Image
}
名字 类型 说明

Xml

{
    "type": "Xml",
    "xml": "XML"
}
名字 类型 说明
xml String XML文本