Skip to content

Aibot API 参考

Aibot提供了GraphQL API,允许开发者以编程方式与机器人交互,获取信息,并控制机器人的行为。本文档提供了API的完整参考。

API 概述

Aibot API 使用GraphQL,这是一种灵活的API查询语言,允许客户端精确指定所需的数据。与传统的REST API相比,GraphQL提供了更高的效率和灵活性。

基本概念

  • 查询(Query): 用于获取数据
  • 变更(Mutation): 用于修改数据
  • 订阅(Subscription): 用于实时获取数据更新

身份验证

所有API请求都需要身份验证。Aibot使用基于令牌的身份验证系统。

bash
Authorization: Bearer YOUR_API_TOKEN

您可以在机器人管理页面生成API令牌。

API端点

GraphQL API的主要端点是:

https://your-aibot-instance.com/api/graphql

常用查询

获取机器人状态

graphql
query {
  botStatus {
    name
    status
    uptime
    memory {
      total
      used
    }
    groups {
      count
      active
    }
  }
}

获取历史对话

graphql
query {
  conversations(groupId: "123456789", limit: 10) {
    id
    timestamp
    sender {
      id
      name
    }
    content
    type
  }
}

获取表情包集合

graphql
query {
  emojis(limit: 20, offset: 0) {
    id
    url
    tags
    usageCount
    addedDate
  }
}

常用变更

发送消息

graphql
mutation {
  sendMessage(
    groupId: "123456789", 
    content: "Hello from API!", 
    type: "TEXT"
  ) {
    success
    messageId
    timestamp
  }
}

更新机器人配置

graphql
mutation {
  updateConfig(
    config: {
      name: "Aibot",
      personality: "FRIENDLY",
      responseLength: "MEDIUM"
    }
  ) {
    success
    message
  }
}

清除记忆

graphql
mutation {
  clearMemory(
    type: "CONVERSATION",
    groupId: "123456789"
  ) {
    success
    message
  }
}

订阅

新消息订阅

graphql
subscription {
  newMessage(groupIds: ["123456789"]) {
    id
    groupId
    sender {
      id
      name
    }
    content
    timestamp
  }
}

状态变更订阅

graphql
subscription {
  botStatusChange {
    status
    timestamp
    reason
  }
}

错误处理

API错误将返回标准的GraphQL错误格式:

json
{
  "errors": [
    {
      "message": "错误描述",
      "locations": [{"line": 2, "column": 3}],
      "path": ["conversations", 0, "content"],
      "extensions": {
        "code": "ERROR_CODE",
        "details": "详细错误信息"
      }
    }
  ]
}

限流政策

API使用基于令牌桶的限流机制:

  • 每分钟60个请求
  • 每小时1000个请求
  • 每天10000个请求

超过限制会返回429错误。

SDK和客户端

我们提供以下语言的官方SDK:

  • JavaScript/TypeScript
  • Python
  • Java
  • Go

有关使用SDK的更多信息,请参阅开发者指南

API变更日志

版本日期变更内容
v1.02023-01-15初始API发布
v1.12023-03-22添加表情包管理API
v1.22023-06-10添加实时订阅支持
v1.32023-09-05改进错误处理和文档