tencent-im/operation/api.go

105 lines
3.3 KiB
Go
Raw Normal View History

2022-09-27 11:31:23 +08:00
/**
* @Author: Echo
* @Author:1711788888@qq.com
* @Date: 2021/5/29 18:38
* @Desc: 运营管理
*/
package operation
import (
"time"
"git.echol.cn/loser/tencent-im/internal/core"
)
const (
serviceOperation = "openconfigsvr"
serviceOpenMessage = "open_msg_svc"
serviceConfig = "ConfigSvc"
commandGetAppInfo = "getappinfo"
commandGetHistory = "get_history"
commandGetIPList = "GetIPList"
)
type API interface {
// GetOperationData 拉取运营数据
// App 管理员可以通过该接口拉取最近30天的运营数据可拉取的字段见下文可拉取的运营字段。
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/4193
GetOperationData(fields ...FieldType) (data []*OperationData, err error)
// GetHistoryData 下载最近消息记录
// App 管理员可以通过该接口获取 App 中最近7天中某天某小时的所有单发或群组消息记录的下载地址
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/1650
GetHistoryData(chatType ChatType, msgTime time.Time) (files []*HistoryFile, err error)
// GetIPList 获取服务器IP地址
// 基于安全等考虑,您可能需要获知服务器的 IP 地址列表,以便进行相关限制。
// App 管理员可以通过该接口获得 SDK、第三方回调所使用到的服务器 IP 地址列表或 IP 网段信息。
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/45438
GetIPList() (ips []string, err error)
}
type api struct {
client core.Client
}
func NewAPI(client core.Client) API {
return &api{client: client}
}
// GetOperationData 拉取运营数据
// App 管理员可以通过该接口拉取最近30天的运营数据可拉取的字段见下文可拉取的运营字段。
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/4193
func (a *api) GetOperationData(fields ...FieldType) (data []*OperationData, err error) {
req := &getOperationDataReq{Fields: fields}
resp := &getOperationDataResp{}
if err = a.client.Post(serviceOperation, commandGetAppInfo, req, resp); err != nil {
return
}
data = resp.Data
return
}
// GetHistoryData 下载最近消息记录
// App 管理员可以通过该接口获取 App 中最近7天中某天某小时的所有单发或群组消息记录的下载地址
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/1650
func (a *api) GetHistoryData(chatType ChatType, msgTime time.Time) (files []*HistoryFile, err error) {
req := &getHistoryDataReq{ChatType: chatType, MsgTime: msgTime.Format("2006010215")}
resp := &getHistoryDataResp{}
if err = a.client.Post(serviceOpenMessage, commandGetHistory, req, resp); err != nil {
return
}
files = resp.Files
return
}
// GetIPList 获取服务器IP地址
// 基于安全等考虑,您可能需要获知服务器的 IP 地址列表,以便进行相关限制。
// App 管理员可以通过该接口获得 SDK、第三方回调所使用到的服务器 IP 地址列表或 IP 网段信息。
// 点击查看详细文档:
// https://cloud.tencent.com/document/product/269/45438
func (a *api) GetIPList() (ips []string, err error) {
req := &getIPListReq{}
resp := &getIPListResp{}
if err = a.client.Post(serviceConfig, commandGetIPList, req, resp); err != nil {
return
}
ips = resp.IPList
return
}