# API列表
本處列出的所有地址均為接入點地址(Endpoint),請自行拼接協議頭和主機地址得到完整URL
常見的協議有:`ws`、`wss`、`http`、`https`
示例:`/api/manager?token=dummy` --> `ws://localhost:5000/api/manager?token=dummy`
## 數據類型
```golang
type msg_type int
const group_msg = 0
const private_msg = 1
type event_result_type int
const ignore_event = 0
const continue_event = 1
const complete_event = 2
type event_result struct{
type event_result_type
}
type event_result_with_reason struct{
type event_result_type
reason string optional
}
type msg_info struct{
id string
}
```
## `POST /api/manager/get_token`
您僅能通過HTTP Post請求訪問該地址
### 請求數據 (`application/x-www-form-urlencoded`):
- user: 用戶名
- password: 密碼
>[info] 若未配置密碼,則可以省略所有參數,直接 Get 或 Post 即可獲取Token
> 若已配置密碼,也可使用 Get 方法 + Basic Authentication 獲取 Token
### 響應數據 (`text/plain`):
- 管理員Token
### 錯誤數據:
- HTTP狀態碼非`200(StatusOK)`則視為出錯,此時返回信息為錯誤信息或空信息,格式及含義由具體實現定義
## `RPC /api/manager?token={管理員Token}`
```golang
// Call by client
func register_app(id string) string
func register_account(id string) string
```
## `RPC /api/account?id={帳號端ID}&token={帳號端Token}`
```golang
// Call by client
func on_receive_chat_message(type msg_type, source string, sender string, message string, info msg_info) event_result
func on_member_joined(source string, sender string, inviter string) event_result
func on_member_left(source string, sender string) event_result
func process_group_invitation(sender string, target string, reason string) event_result_with_reason
func process_friend_request(sender string, reason string) event_result_with_reason
func process_membership_request(source string, sender string, inviter string, reason string) event_result_with_reason
// Call by router
func get_group_name(id string) string
func get_user_mame(id string) string
func send_chat_message(type msg_type, source string, target string, message string)
func remove_member(source string, target string)
func shutup_member(source string, target string, duration int)
func shutup_all_member(source string, shutupSwitch bool)
func get_member_mame(source string, target string) string
func get_user_avatar(id string) string
func get_self_id() string
func get_platform_id() string
func get_group_list() []string
func get_member_list(id string) []string
```
## `RPC /api/app?id={應用端ID}&token={應用端Token}`
```golang
// Call by client
func get_group_name(bot string, id string) string
func get_user_mame(bot string, id string) string
func send_chat_message(bot string, type msg_type, source string, target string, message string)
func remove_member(bot string, source string, target string)
func shutup_member(bot string, source string, target string, duration int)
func shutup_all_member(bot string, source string, shutupSwitch bool)
func get_member_mame(bot string, source string, target string) string
func get_user_avatar(bot string, id string) string
func get_self_id(bot string) string
func get_platform_id(bot string) string
func get_group_list(bot string) []string
func get_member_list(bot string, id string) []string
// Call by router
func on_receive_chat_message(type msg_type, source string, sender string, message string, info msg_info) event_result
func on_member_joined(source string, sender string, inviter string) event_result
func on_member_left(source string, sender string) event_result
func process_group_invitation(bot string, sender string, target string, reason string) event_result_with_reason
func process_friend_request(bot string, sender string, reason string) event_result_with_reason
func process_membership_request(bot string, source string, sender string, inviter string, reason string) event_result_with_reason
```
## `RPC {Webhook控制器}`
在原有RPC連接上添加參數`webhook=1`表示連接到webhook控制器,此時您可以通過HTTP Post方法調用控制器的RPC方法注冊、刪除Webhook(參考[RPC通道](RPCChannel.md)中有關“HTTP Post 模式”的說明)
```golang
type webhook_info struct{
token string
address string
}
func create_webhook(address string) webhook_info
func delete_webhook(id string)
```