tim

package module
v1.0.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2021 License: Apache-2.0 Imports: 16 Imported by: 0

README

TiMGoSdk

License

Apache License 2.0

Documentation

Index

Constants

View Source
const (
	StateStateChange           = "State.StateChange"
	SnsFriendAdd               = "Sns.CallbackFriendAdd"
	SnsFriendDelete            = "Sns.CallbackFriendDelete"
	SnsBlackListAdd            = "Sns.CallbackBlackListAdd"
	SnsBlackListDelete         = "Sns.CallbackBlackListDelete"
	C2CBeforeSendMsg           = "C2C.CallbackBeforeSendMsg"
	C2CAfterSendMsg            = "C2C.CallbackAfterSendMsg"
	GroupBeforeCreateGroup     = "Group.CallbackBeforeCreateGroup"
	GroupAfterCreateGroup      = "Group.CallbackAfterCreateGroup"
	GroupBeforeApplyJoinGroup  = "Group.CallbackBeforeApplyJoinGroup"
	GroupBeforeInviteJoinGroup = "Group.CallbackBeforeInviteJoinGroup"
	GroupAfterNewMemberJoin    = "Group.CallbackAfterNewMemberJoin"
	GroupAfterMemberExit       = "Group.CallbackAfterMemberExit"
	GroupBeforeSendMsg         = "Group.CallbackBeforeSendMsg"
	GroupAfterSendMsg          = "Group.CallbackAfterSendMsg"
	GroupAfterGroupFull        = "Group.CallbackAfterGroupFull"
	GroupAfterGroupDestroyed   = "Group.CallbackAfterGroupDestroyed"
	GroupAfterGroupInfoChanged = "Group.CallbackAfterGroupInfoChanged"
)
View Source
const (
	//TimTextElem	文本消息。
	TextElem = "TimTextElem"
	//LocationElem	地理位置消息。
	LocationElem = "TIMLocationElem"
	//FaceElem	表情消息。
	FaceElem = "TIMFaceElem"
	//CustomElem	自定义消息,当接收方为 iOS 系统且应用处在后台时,此消息类型可携带除文本以外的字段到 APNs。一条组合消息中只能包含一个 CustomElem 自定义消息元素
	CustomElem = "TIMCustomElem"
	// 语音消息
	SoundElem = "TIMSoundElem"
	// 图像消息
	ImageElem = "TIMImageElem"
	// 文件消息
	FileElem = "TIMFileElem"
	// 视频消息
	VideoFileElem = "TIMVideoFileElem"
)
View Source
const (
	PublicGroup   GroupType = "Public"
	PrivateGroup  GroupType = "Private"
	ChatRoomGroup GroupType = "ChatRoom"
	AVChatRoom    GroupType = "AVChatRoom"
	BChatRoom     GroupType = "BChatRoom"
	RoleAdmin               = "Admin"
	RoleOwner               = "Owner"
	RoleMember              = "Member "
)
View Source
const (
	//昵称
	//长度不得超过500个字节
	TagProfileIMNick = "Tag_Profile_IM_Nick"
	//性别
	//Gender_Type_Unknown:没设置性别
	//Gender_Type_Female:女性
	//Gender_Type_Male:男性
	TagProfileIMGender = "Tag_Profile_IM_Gender"
	//生日
	//推荐用法:20190419
	TagProfileIMBirthDay = "Tag_Profile_IM_BirthDay"
	//所在地
	//长度不得超过16个字节,推荐用法如下:
	//App 本地定义一套数字到地名的映射关系
	//后台实际保存的是4个 uint32_t 类型的数字
	//其中第一个 uint32_t 表示国家
	//第二个 uint32_t 用于表示省份
	//第三个 uint32_t 用于表示城市
	//第四个 uint32_t 用于表示区县
	TagProfileIMLocation = "Tag_Profile_IM_Location"
	//个性签名
	//长度不得超过500个字节
	TagProfileIMSelfSignature = "Tag_Profile_IM_SelfSignature"
	//加好友验证方式
	//AllowType_Type_NeedConfirm:需要经过自己确认才能添加自己为好友
	//AllowType_Type_AllowAny:允许任何人添加自己为好友
	//AllowType_Type_DenyAny:不允许任何人添加自己为好友
	TagProfileIMAllowType = "Tag_Profile_IM_AllowType"
	//语言
	TagProfileIMLanguage = "Tag_Profile_IM_Language"
	//头像URL
	//长度不得超过500个字节
	TagProfileIMImage = "Tag_Profile_IM_Image"
	//消息设置
	//标志位: Bit0:置0表示接收消息,置1则不接收消息
	TagProfileIMMsgSettings = "Tag_Profile_IM_MsgSettings"
	//管理员禁止加好友标识
	//AdminForbid_Type_None:默认值,允许加好友 AdminForbid_Type_SendOut:禁止该用户发起加好友请求
	TagProfileIMAdminForbidType = "Tag_Profile_IM_AdminForbidType"
	//等级
	//通常一个 UINT-8 数据即可保存一个等级信息 您可以考虑拆分保存,从而实现多种角色的等级信息
	TagProfileIMLevel = "Tag_Profile_IM_Level"
	//角色
	//通常一个 UINT-8 数据即可保存一个角色信息 您可以考虑拆分保存,从而保存多种角色信息
	TagProfileIMRole = "Tag_Profile_IM_Role"
	//好友分组:
	//1. 最多支持 32 个分组;
	//2. 不允许分组名为空;
	//3. 分组名长度不得超过 30 个字节;
	//4. 同一个好友可以有多个不同的分组
	TagSNSIMGroup = "Tag_SNS_IM_Group"
	//好友备注:
	//1. 备注长度最长不得超过 96 个字节
	TagSNSIMRemark = "Tag_SNS_IM_Remark"
	//加好友来源:
	//1. 加好友来源字段包含前缀和关键字两部分;
	//2. 加好友来源字段的前缀是:AddSource_Type_ ;
	//3. 关键字:必须是英文字母,且长度不得超过 8 字节,建议用一个英文单词或该英文单词的缩写;
	//4. 示例:加好友来源的关键字是 Android,则加好友来源字段是:AddSource_Type_Android
	TagSNSIMAddSource = "Tag_SNS_IM_AddSource"
	//加好友附言:
	//1. 加好友附言的长度最长不得超过 256 个字节
	TagSNSIMAddWording = "Tag_SNS_IM_AddWording"
)

Variables

View Source
var (
	ErrInvalidPriKey = errors.New("Invalid private key")
	ErrInvalidVer    = errors.New("Unknown version")
)

Functions

func AddCommandFuc

func AddCommandFuc(command string, commandFunc CommandFunc)

func AfterCreateGroup

func AfterCreateGroup(req Req, c echo.Context) error

func AfterGroupDestroyed

func AfterGroupDestroyed(req Req, c echo.Context) error

func AfterGroupFull

func AfterGroupFull(req Req, c echo.Context) error

func AfterGroupInfoChanged

func AfterGroupInfoChanged(req Req, c echo.Context) error

func AfterMemberExit

func AfterMemberExit(req Req, c echo.Context) error

func AfterNewMemberJoin

func AfterNewMemberJoin(req Req, c echo.Context) error

func AfterSendMsg

func AfterSendMsg(req Req, c echo.Context) error

func BeforeApplyJoinGroup

func BeforeApplyJoinGroup(req Req, c echo.Context) error

func BeforeCreateGroup

func BeforeCreateGroup(req Req, c echo.Context) error

func BeforeInviteJoinGroup

func BeforeInviteJoinGroup(req Req, c echo.Context) error

func BeforeSendMsg

func BeforeSendMsg(req Req, c echo.Context) error

func BlackListAdd

func BlackListAdd(req Req, c echo.Context) error

func BlackListDelete

func BlackListDelete(req Req, c echo.Context) error

func FriendAdd

func FriendAdd(req Req, c echo.Context) error

func FriendDelete

func FriendDelete(req Req, c echo.Context) error

func GafterSendMsg

func GafterSendMsg(req Req, c echo.Context) error

func Run

func Run(appId string)

func StateChange

func StateChange(req Req, c echo.Context) error

Types

type AddFriendItem

type AddFriendItem struct {
	ToAccount string `json:"To_Account"`
	Remark    string `json:"Remark"`
	GroupName string `json:"GroupName"`
	//加好友来源:
	//1. 加好友来源字段包含前缀和关键字两部分;
	//2. 加好友来源字段的前缀是:AddSource_Type_ ;
	//3. 关键字:必须是英文字母,且长度不得超过 8 字节,建议用一个英文单词或该英文单词的缩写;
	//4. 示例:加好友来源的关键字是 Android,则加好友来源字段是:AddSource_Type_Android
	AddSource  string `json:"AddSource"`
	AddWording string `json:"AddWording"`
}

type AddFriendType

type AddFriendType string
const (
	AddFriendSingle AddFriendType = "Add_Type_Single"
	AddFriendBoth   AddFriendType = "Add_Type_Both"
)

type AfterMemberExitCallback added in v1.0.16

type AfterMemberExitCallback struct {
	// CallbackCommand string `json:"CallbackCommand"`
	// GroupID string `json:"GroupId"`
	// Type string `json:"Type"`
	ExitType string `json:"ExitType,omitempty"`
	// OperatorAccount string `json:"Operator_Account"`
	ExitMemberList []MemberListItem `json:"ExitMemberList,omitempty"`
}

type AfterNewMemberJoinCallback added in v1.0.16

type AfterNewMemberJoinCallback struct {
	// CallbackCommand string `json:"CallbackCommand"`
	// GroupID string `json:"GroupId"`
	// Type string `json:"Type"`
	JoinType string `json:"JoinType,omitempty"`
	// OperatorAccount string `json:"Operator_Account"`
	NewMemberList []MemberListItem `json:"NewMemberList,omitempty"`
}

type AfterSendMsgCallback added in v1.0.16

type AfterSendMsgCallback struct {
	// CallbackCommand string `json:"CallbackCommand"`
	// GroupID string `json:"GroupId"`
	// Type string `json:"Type"`
	// FromAccount string `json:"From_Account"`
	// OperatorAccount string `json:"Operator_Account"`
	// Random  int `json:"Random,omitempty"`
	MsgSeq  int `json:"MsgSeq,omitempty"`
	MsgTime int `json:"MsgTime,omitempty"`
}

type AndroidInfo

type AndroidInfo struct {
	Sound string `json:"Sound"`
}

type ApiPath

type ApiPath string
const (
	VERSION = "v4"
	BaseUrl = "https://console.tim.qq.com"

	//帐号管理
	MultiAccountImportApi ApiPath = "/im_open_login_svc/multiaccount_import" //导入多个帐号
	AccountImportApi      ApiPath = "/im_open_login_svc/account_import"      //导入单个帐号
	AccountDeleteApi      ApiPath = "/im_open_login_svc/account_delete"      //删除帐号	v4/im_open_login_svc/account_delete
	AccountCheckApi       ApiPath = "/im_open_login_svc/account_check"       //查询帐号	v4/im_open_login_svc/account_check
	KickApi               ApiPath = "/im_open_login_svc/kick"                //失效帐号登录态	v4/im_open_login_svc/kick

	//单聊消息
	QueryStateApi    ApiPath = "/openim/querystate"        //查询帐号在线状态	v4/openim/querystate
	SendMsg          ApiPath = "/openim/sendmsg"           //单发单聊消息	v4/openim/sendmsg
	BatchSendMsg     ApiPath = "/openim/batchsendmsg"      //批量发单聊消息	v4/openim/batchsendmsg
	ImportMsg        ApiPath = "/openim/importmsg"         //导入单聊消息	v4/openim/importmsg
	AdminGetRoamMsg  ApiPath = "/openim/admin_getroammsg"  //查询单聊消息	v4/openim/admin_getroammsg
	AdminMsgWithDraw ApiPath = "/openim/admin_msgwithdraw" //撤回单聊消息
	//资料管理
	PortraitGet     ApiPath = "/profile/portrait_get" //拉取资料	v4/profile/portrait_get
	PortraitPostSet ApiPath = "/profile/portrait_set" //设置资料	v4/profile/portrait_set

	//关系链管理
	FriendAddApi       ApiPath = "/sns/friend_add"        //添加好友	v4/sns/friend_add
	FriendImport       ApiPath = "/sns/friend_import"     //导入好友	v4/sns/friend_import
	FriendDeleteApi    ApiPath = "/sns/friend_delete"     //删除好友	v4/sns/friend_delete
	FriendUpdate       ApiPath = "/sns/friend_update"     //更新好友
	FriendDeleteAll    ApiPath = "/sns/friend_delete_all" //删除所有好友	v4/sns/friend_delete_all
	FriendCheck        ApiPath = "/sns/friend_check"      //校验好友	v4/sns/friend_check
	FriendGetApi       ApiPath = "/sns/friend_get"        //拉取好友	v4/sns/friend_get
	FriendGetList      ApiPath = "/sns/friend_get_list"   //拉取指定好友	v4/sns/friend_get_list
	BlackListAddApi    ApiPath = "/sns/black_list_add"    //添加黑名单	v4/sns/black_list_add
	BlackListDeleteApi ApiPath = "/sns/black_list_delete" //删除黑名单	v4/sns/black_list_delete
	BlackListGetApi    ApiPath = "/sns/black_list_get"    //拉取黑名单	v4/sns/black_list_get
	BlackListCheckApi  ApiPath = "/sns/black_list_check"  //校验黑名单	v4/sns/black_list_check
	GroupAddApi        ApiPath = "/sns/group_add"         //添加分组	v4/sns/group_add
	GroupDeleteApi     ApiPath = "/sns/group_delete"      //删除分组	v4/sns/group_delete

	//获取 App 中的所有群组	v4/group_open_http_svc/get_appid_group_list
	GetAppidGroupListApi        ApiPath = "/group_open_http_svc/get_appid_group_list"
	CreateGroupApi              ApiPath = "/group_open_http_svc/create_group"                   //创建群组	v4/group_open_http_svc/create_group
	GetGroupInfoApi             ApiPath = "/group_open_http_svc/get_group_info"                 //获取群组详细资料	v4/group_open_http_svc/get_group_info
	GetGroupMemberInfoApi       ApiPath = "/group_open_http_svc/get_group_member_info"          //获取群成员详细资料	v4/group_open_http_svc/get_group_member_info
	ModifyGroupBaseInfoApi      ApiPath = "/group_open_http_svc/modify_group_base_info"         //修改群组基础资料	v4/group_open_http_svc/modify_group_base_info
	AddGroupMemberApi           ApiPath = "/group_open_http_svc/add_group_member"               //增加群组成员	v4/group_open_http_svc/add_group_member
	DeleteGroupMemberApi        ApiPath = "/group_open_http_svc/delete_group_member"            //删除群组成员	v4/group_open_http_svc/delete_group_member
	ModifyGroupMemberInfoApi    ApiPath = "/group_open_http_svc/modify_group_member_info"       //修改群组成员资料	v4/group_open_http_svc/modify_group_member_info
	DestroyGroupApi             ApiPath = "/group_open_http_svc/destroy_group"                  //解散群组	v4/group_open_http_svc/destroy_group
	GetJoinedGroupListApi       ApiPath = "/group_open_http_svc/get_joined_group_list"          //获取用户所加入的群组	v4/group_open_http_svc/get_joined_group_list
	GetRoleInGroup              ApiPath = "/group_open_http_svc/get_role_in_group"              //查询用户在群组中的身份	v4/group_open_http_svc/get_role_in_group
	ForbidSendMsg               ApiPath = "/group_open_http_svc/forbid_send_msg"                //批量禁言和取消禁言	v4/group_open_http_svc/forbid_send_msg
	GetGroupShuttedUin          ApiPath = "/group_open_http_svc/get_group_shutted_uin"          //获取群组被禁言用户列表	v4/group_open_http_svc/get_group_shutted_uin
	SendGroupMsg                ApiPath = "/group_open_http_svc/send_group_msg"                 //在群组中发送普通消息	v4/group_open_http_svc/send_group_msg
	SendGroupSystemNotification ApiPath = "/group_open_http_svc/send_group_system_notification" //在群组中发送系统通知	v4/group_open_http_svc/send_group_system_notification
	GroupMsgRecall              ApiPath = "/group_open_http_svc/group_msg_recall"               //群组消息撤回	v4/group_open_http_svc/group_msg_recall
	ChangeGroupOwner            ApiPath = "/group_open_http_svc/change_group_owner"             //转让群组	v4/group_open_http_svc/change_group_owner
	ImportGroupApi              ApiPath = "/group_open_http_svc/import_group"                   //导入群基础资料	v4/group_open_http_svc/import_group
	ImportGroupMsgApi           ApiPath = "/group_open_http_svc/import_group_msg"               //导入群消息	v4/group_open_http_svc/import_group_msg
	ImportGroupMemberApi        ApiPath = "/group_open_http_svc/import_group_member"            //导入群成员	v4/group_open_http_svc/import_group_member
	SetUnreadMsgNumApi          ApiPath = "/group_open_http_svc/set_unread_msg_num"             //设置成员未读消息计数	v4/group_open_http_svc/set_unread_msg_num
	DeleteGroupMsgBySenderApi   ApiPath = "/group_open_http_svc/delete_group_msg_by_sender"     //删除指定用户发送的消息	v4/group_open_http_svc/delete_group_msg_by_sender
	GroupMsgGetSimpleApi        ApiPath = "/group_open_http_svc/group_msg_get_simple"           //拉取群漫游消息	v4/group_open_http_svc/group_msg_get_simple

	//全局禁言管理
	SetNoSpeakingApi ApiPath = "/openconfigsvr/setnospeaking" //设置全局禁言	v4/openconfigsvr/setnospeaking
	GetNoSpeakingApi ApiPath = "/openconfigsvr/getnospeaking" //查询全局禁言	v4/openconfigsvr/getnospeaking

	//运营管理
	GetHistoryApi ApiPath = "/open_msg_svc/get_history" //下载消息记录	v4/open_msg_svc/get_history
	GetAppInfoApi ApiPath = "/openconfigsvr/getappinfo" //拉取运营数据	v4/openconfigsvr/getappinfo
	// 全员推送
	PostPushAll ApiPath = "/all_member_push/im_push" // 支持全员推送。
)

type ApnsInfo

type ApnsInfo struct {
	Sound     string `json:"Sound"`
	BadgeMode int    `json:"BadgeMode"`
	Title     string `json:"Title"`
	SubTitle  string `json:"SubTitle"`
	Image     string `json:"Image"`
}

type AppDefinedData

type AppDefinedData struct {
	Key   string `json:"Key"`
	Value string `json:"Value"`
}

type AppHistory

type AppHistory struct {
	File         []Msg  `json:"File"`
	ActionStatus string `json:"ActionStatus"`
	ErrorInfo    string `json:"ErrorInfo"`
	ErrorCode    int    `json:"ErrorCode"`
}

type AppInfo

type AppInfo struct {
	ErrorCode int    `json:"ErrorCode"`
	ErrorInfo string `json:"ErrorInfo"`
	Result    []Info `json:"Result"`
}

type AppInfoField

type AppInfoField string
const (
	AppName              AppInfoField = "AppName"              //应用名称
	AppId                AppInfoField = "AppId"                // 应用 SDKAppID
	Company              AppInfoField = "Company"              //所属客户名称
	ActiveUserNum        AppInfoField = "ActiveUserNum"        //活跃用户数
	RegistUserNumOneDay  AppInfoField = "RegistUserNumOneDay"  //新增注册人数
	RegistUserNumTotal   AppInfoField = "RegistUserNumTotal"   //累计注册人数
	LoginTimes           AppInfoField = "LoginTimes"           //登录次数
	LoginUserNum         AppInfoField = "LoginUserNum"         //登录人数
	UpMsgNum             AppInfoField = "UpMsgNum"             //上行消息数
	SendMsgUserNum       AppInfoField = "SendMsgUserNum"       //发消息人数
	APNSMsgNum           AppInfoField = "APNSMsgNum"           //APNs 推送数
	C2CUpMsgNum          AppInfoField = "C2CUpMsgNum"          //上行消息数(C2C)
	C2CSendMsgUserNum    AppInfoField = "C2CSendMsgUserNum"    //发消息人数(C2C)
	C2CAPNSMsgNum        AppInfoField = "C2CAPNSMsgNum"        //APNs 推送数(C2C)
	MaxOnlineNum         AppInfoField = "MaxOnlineNum"         //最高在线人数
	ChainIncrease        AppInfoField = "ChainIncrease"        //关系链对数增加量
	ChainDecrease        AppInfoField = "ChainDecrease"        //关系链对数删除量
	GroupUpMsgNum        AppInfoField = "GroupUpMsgNum"        //上行消息数(群)
	GroupSendMsgUserNum  AppInfoField = "GroupSendMsgUserNum"  //发消息人数(群)
	GroupAPNSMsgNum      AppInfoField = "GroupAPNSMsgNum"      //APNs 推送数(群)
	GroupSendMsgGroupNum AppInfoField = "GroupSendMsgGroupNum" //发消息群组数
	GroupJoinGroupTimes  AppInfoField = "GroupJoinGroupTimes"  //入群总数
	GroupQuitGroupTimes  AppInfoField = "GroupQuitGroupTimes"  //退群总数
	GroupNewGroupNum     AppInfoField = "GroupNewGroupNum"     //新增群组数
	GroupAllGroupNum     AppInfoField = "GroupAllGroupNum"     //累计群组数
	GroupDestroyGroupNum AppInfoField = "GroupDestroyGroupNum" //解散群个数
	CallBackReq          AppInfoField = "CallBackReq"          //回调请求数
	CallBackRsp          AppInfoField = "CallBackRsp"          //回调应答数
	Date                 AppInfoField = "Date"                 //日期
)

type ApplyJoinOption

type ApplyJoinOption string
const (
	ApplyJoinFreeAccess     ApplyJoinOption = "FreeAccess"
	ApplyJoinNeedPermission ApplyJoinOption = "NeedPermission"
	ApplyJoinDisableApply   ApplyJoinOption = "DisableApply"
)

type BatchChatMsg

type BatchChatMsg struct {
	FromAccount string   `json:"From_Account"`
	ToAccount   []string `json:"To_Account"`
	ChatMsg
}

type BeforeApplyJoinGroupCallback added in v1.0.16

type BeforeApplyJoinGroupCallback struct {
	// CallbackCommand string `json:"CallbackCommand"`
	// GroupID string `json:"GroupId"`
	// Type string `json:"Type"`
	RequestorAccount string `json:"Requestor_Account,omitempty"`
}

type BeforeInviteJoinGroupCallback added in v1.0.16

type BeforeInviteJoinGroupCallback struct {
	// CallbackCommand    string               `json:"CallbackCommand"`
	// GroupID            string               `json:"GroupId"`
	// Type               string               `json:"Type"`
	// OperatorAccount    string               `json:"Operator_Account"`
	DestinationMembers []MemberListItem `json:"DestinationMembers,omitempty"`
}

type BeforeSendMsgCallback added in v1.0.16

type BeforeSendMsgCallback struct {
}

type BlackList

type BlackList struct {
	FromAccount  string `json:"From_Account"`
	StartIndex   int    `json:"StartIndex"`
	MaxLimited   int    `json:"MaxLimited"`
	LastSequence int    `json:"LastSequence"`
}

From_Account String 必填 需要拉取该 UserID 的黑名单 StartIndex Integer 必填 拉取的起始位置 MaxLimited Integer 必填 每页最多拉取的黑名单数 LastSequence Integer 必填 上一次拉黑名单时后台返回给客户端的 Seq,初次拉取时为0

type BlackListCheckType

type BlackListCheckType string
const (
	//只会检查 From_Account 的黑名单中是否有 To_Account,不会检查 To_Account 的黑名单中是否有 From_Account
	BlackCheckResultTypeSingle BlackListCheckType = "BlackCheckResult_Type_Single"
	//既会检查 From_Account 的黑名单中是否有 To_Account,也会检查 To_Account 的黑名单中是否有 From_Account
	BlackCheckResultTypeBoth BlackListCheckType = "BlackCheckResult_Type_Both"
	//From_Account 的黑名单中有 To_Account,但无法确定 To_Account 的黑名单中是否有 From_Account
	//From_Account 的黑名单中有 To_Account,但 To_Account 的黑名单中没有 From_Account
	BlackCheckResult_Type_AWithB BlackListCheckType = "BlackCheckResult_Type_AWithB"
	//From_Account 的黑名单中没有 To_Account,但无法确定 To_Account 的黑名单中是否有 From_Account
	//From_Account 的黑名单中没有 To_Account,To_Account 的黑名单中也没有 From_Account
	BlackCheckResult_Type_NO BlackListCheckType = "BlackCheckResult_Type_NO"
	//From_Account 的黑名单中有 To_Account,To_Account 的黑名单中也有 From_Account
	BlackCheckResult_Type_BothWay BlackListCheckType = "BlackCheckResult_Type_BothWay"
	//From_Account 的黑名单中没有 To_Account,但 To_Account 的黑名单中有 From_Account
	BlackCheckResult_Type_BWithA BlackListCheckType = "BlackCheckResult_Type_BWithA"
)

https://cloud.tencent.com/document/product/269/1501#.E6.A0.A1.E9.AA.8C.E9.BB.91.E5.90.8D.E5.8D.95

type BlackListResult

type BlackListResult struct {
	BlackListItem []struct {
		ToAccount         string `json:"To_Account"`
		AddBlackTimeStamp int    `json:"AddBlackTimeStamp"`
	} `json:"BlackListItem"`
	StartIndex       int `json:"StartIndex"`
	CurruentSequence int `json:"CurruentSequence"`
}

BlackListItem Array 黑名单对象数组,每一个黑名单对象都包括了 To_Account 和 AddBlackTimeStamp To_Account String 黑名单的 UserID AddBlackTimeStamp Integer 添加黑名单的时间 StartIndex Integer 下页拉取的起始位置,0表示已拉完 CurruentSequence Integer 黑名单最新的 Seq

type C2CCallBack

type C2CCallBack func(req Req, info C2CMsg) error

type C2CMsg

type C2CMsg struct {
	CallbackCommand string    `json:"CallbackCommand"`
	FromAccount     string    `json:"From_Account"`
	ToAccount       string    `json:"To_Account"`
	MsgSeq          int       `json:"MsgSeq,omitempty"`
	MsgRandom       int       `json:"MsgRandom"`
	MsgTime         int       `json:"MsgTime,omitempty"`
	MsgKey          string    `json:"MsgKey,omitempty"`
	MsgBody         []MsgBody `json:"MsgBody,omitempty"`
	SendMsgResult   int       `json:"SendMsgResult,omitempty"`
	ErrorInfo       string    `json:"ErrorInfo,omitempty"`
	UnreadMsgNum    int       `json:"UnreadMsgNum,omitempty"`
	CloudCustomData string    `json:"CloudCustomData,omitempty"`
}

CallbackCommand String 回调命令 From_Account String 消息发送者 UserID To_Account String 消息接收者 UserID MsgSeq Integer 消息序列号,用于标记该条消息(32位无符号整数) MsgRandom Integer 消息随机数,用于标记该条消息(32位无符号整数) MsgTime Integer 消息的发送时间戳,单位为秒 单聊消息优先使用 MsgTime 进行排序,同一秒发送的消息则按 MsgSeq 排序,MsgSeq 值越大消息越靠后 MsgKey String 该条消息的唯一标识,可根据该标识进行 REST API 撤回单聊消息 MsgBody Array 消息体,详情请参见 消息格式描述

type CallGroup

type CallGroup func(req Req, info CallbackGroup) error

type CallbackFriend

type CallbackFriend struct {
	CallbackCommand string `json:"CallbackCommand"`
	PairList        []struct {
		FromAccount      string `json:"From_Account"`
		ToAccount        string `json:"To_Account"`
		InitiatorAccount string `json:"Initiator_Account"`
	} `json:"PairList"`
	ClientCmd    string `json:"ClientCmd"`
	AdminAccount string `json:"Admin_Account"`
	ForceFlag    int    `json:"ForceFlag"`
}

CallbackCommand String 回调命令 PairList Array 成功添加的好友对 From_Account String From_Account 的好友表中增加了 To_Account To_Account String To_Account 被增加到了 From_Account 的好友表中 Initiator_Account String 发起加好友请求的用户的 UserID ClientCmd String 触发回调的命令字: 加好友请求,合理的取值如下:friend_add、FriendAdd 加好友回应,合理的取值如下:friend_response、FriendResponse Admin_Account String 如果当前请求是后台触发的加好友请求,则该字段被赋值为管理员帐号;否则为空 ForceFlag Integer 管理员强制加好友标记:1 表示强制加好友;0 表示常规加好友方式

type CallbackGroup

type CallbackGroup struct {
	CallbackCommand string           `json:"CallbackCommand"`
	GroupID         string           `json:"GroupId"`
	FromAccount     string           `json:"From_Account"`
	OperatorAccount string           `json:"Operator_Account,omitempty"`
	OwnerAccount    string           `json:"Owner_Account,omitempty"`
	Type            string           `json:"Type,omitempty"`
	Name            string           `json:"Name,omitempty"`
	MemberList      []MemberListItem `json:"MemberList,omitempty"`
	Introduction    string           `json:"Introduction,omitempty"`
	Notification    string           `json:"Notification,omitempty"`
	FaceURL         string           `json:"FaceUrl,omitempty"`
	MsgBody         []MsgBody        `json:"MsgBody,omitempty"`
	Random          int              `json:"Random,omitempty"`
	GroupBeforeCreateCallback
	GroupAfterCreateCallback
	BeforeApplyJoinGroupCallback
	BeforeInviteJoinGroupCallback
	AfterNewMemberJoinCallback
	AfterMemberExitCallback
	//BeforeSendMsgCallback
	AfterSendMsgCallback
}

CallbackCommand String 回调命令 GroupId String 操作的群 ID Operator_Account String 发起创建群组请求的操作者 UserID Owner_Account String 请求创建的群的群主 UserID Type String 请求创建的 群组形态介绍,例如 Private,Public 和 ChatRoom Name String 请求创建的群组的名称 MemberList Array 请求创建的群组的初始化成员列表 UserDefinedDataList Array 用户建群时的自定义字段,这个字段默认是没有的,需要开通,详见 自定义字段

type ChatMsg

type ChatMsg struct {
	SyncOtherMachine  int              `json:"SyncOtherMachine,omitempty"`
	SyncFromOldSystem int              `json:"SyncFromOldSystem,omitempty" `
	MsgLifeTime       int              `json:"MsgLifeTime,omitempty"`
	MsgRandom         int              `json:"MsgRandom"`
	MsgTimeStamp      int64            `json:"MsgTimeStamp,omitempty"`
	MsgBody           []MsgBody        `json:"MsgBody"`
	OfflinePushInfo   *OfflinePushInfo `json:"OfflinePushInfo,omitempty"`
}

SyncOtherMachine Integer 选填 1:把消息同步到 From_Account 在线终端和漫游上;

2:消息不同步至 From_Account;

若不填写默认情况下会将消息存 From_Account 漫游 MsgLifeTime Integer 选填 消息离线保存时长(单位:秒),最长为7天(604800秒) 若设置该字段为0,则消息只发在线用户,不保存离线 若设置该字段超过7天(604800秒),仍只保存7天 若不设置该字段,则默认保存7天 MsgRandom Integer 必填 消息随机数,由随机函数产生,用于后台定位问题 MsgTimeStamp Integer 选填 消息时间戳,UNIX 时间戳(单位:秒) MsgType String 必填 TIM 消息对象类型,目前支持的消息对象包括:TimTextElem(文本消息),FaceElem(表情消息),LocationElem(位置消息),CustomElem(自定义消息) MsgContent Object 必填 对于每种 MsgType 用不同的 MsgContent 格式,具体可参考 消息格式描述 OfflinePushInfo Object 选填 离线推送信息配置,具体可参考 消息格式描述

type CheckResult

type CheckResult struct {
	ToAccount  string   `json:"To_Account"`
	Relation   Relation `json:"Relation"`
	ResultCode int      `json:"ResultCode"`
	ResultInfo string   `json:"ResultInfo"`
}

To_Account String 请求校验的用户的 UserID Relation String 校验成功时 To_Account 与 From_Account 之间的黑名单关系,详情可参见 校验黑名单 ResultCode Integer To_Account 的处理结果,0表示成功,非0表示失败,非0取值的详细描述请参见 错误码说明 ResultInfo String To_Account 的错误描述信息,成功时该字段为空

type CheckType

type CheckType string
const (
	// 单向校验好友关系
	// 只会检查 From_Account 的好友表中是否有 To_Account,不会检查 To_Account 的好友表中是否有 From_Account
	CheckSingle CheckType = "CheckResult_Type_Single"
	// 双向校验好友关系
	// 既会检查 From_Account 的好友表中是否有 To_Account,也会检查 To_Account 的好友表中是否有 From_Account
	CheckBoth CheckType = "CheckResult_Type_Both"
)

type CommandFunc

type CommandFunc func(req Req, c echo.Context) error

type Condition added in v1.0.1

type Condition struct {
	AttrsAnd *map[string]interface{} `json:"AttrsAnd,omitempty"`
	AttrsOr  *map[string]interface{} `json:"AttrsOr,omitempty"`
	TagsOr   *map[string]interface{} `json:"TagsOr,omitempty"`
	TagsAnd  *map[string]interface{} `json:"TagsAnd,omitempty"`
}

推送条件

type CustomContent added in v1.0.10

type CustomContent struct {
	// Data  string `json:"Data,omitempty"`
	// Desc  string `json:"Desc,omitempty"`
	Ext   string `json:"Ext,omitempty"`
	Sound string `json:"Sound,omitempty"`
}

自定义消息

type DeleteType

type DeleteType string
const (
	// 单向删除好友
	// 只将 To_Account 从 From_Account 的好友表中删除,但不会将 From_Account 从 To_Account 的好友表中删除
	DeleteSingle DeleteType = "Delete_Type_Single"
	// 双向删除好友
	// 将 To_Account 从 From_Account 的好友表中删除,同时将 From_Account 从 To_Account 的好友表中删除
	DeleteBoth DeleteType = "Delete_Type_Both"
)

type Detail

type Detail struct {
	Platform string `json:"Platform"`
	Status   string `json:"Status"`
}

type ErrorList

type ErrorList struct {
	ToAccount string `json:"To_Account"`
	ErrorCode int    `json:"ErrorCode"`
}

type FaceContent added in v1.0.10

type FaceContent struct {
	// Data  string `json:"Data,omitempty"`
	Index int `json:"Index,omitempty"`
}

表情消息

type FileContent added in v1.0.10

type FileContent struct {
	Url      string `json:"Url,omitempty"`      // 文件下载地址,可通过该 URL 地址直接下载相应文件。
	FileSize int    `json:"FileSize,omitempty"` // 文件数据大小,单位:字节。
	FileName string `json:"FileName,omitempty"` // 文件名称。

}

文件

type Friend

type Friend struct {
	FromAccount   string          `json:"From_Account"`
	AddFriendItem []AddFriendItem `json:"AddFriendItem"`
	AddType       AddFriendType   `json:"AddType"`       //加好友方式(默认双向加好友方式): Add_Type_Single 表示单向加好友 Add_Type_Both 表示双向加好友
	ForceAddFlags int             `json:"ForceAddFlags"` //管理员强制加好友标记:1表示强制加好友,0表示常规加好友方式
}

type FriendAddCallBack

type FriendAddCallBack func(req Req, info CallbackFriend) error

type FriendResultItem

type FriendResultItem struct {
	ToAccount  string `json:"To_Account"`
	ResultCode int    `json:"ResultCode"`
	ResultInfo string `json:"ResultInfo"`
}

To_Account String 请求添加的好友的 UserID ResultCode Integer To_Account 的处理结果,0表示成功,非0表示失败,非0取值的详细描述请参见 错误码说明 ResultInfo String To_Account 的错误描述信息,成功时该字段为空

type GetFriend

type GetFriend struct {
	FromAccount      string `json:"From_Account"`
	StartIndex       int    `json:"StartIndex"`
	StandardSequence int    `json:"StandardSequence"`
	CustomSequence   int    `json:"CustomSequence"`
}

From_Account String 必填 指定要拉取好友数据的用户的 UserID StartIndex Integer 必填 分页的起始位置 StandardSequence Integer 选填 上次拉好友数据时返回的 StandardSequence,如果 StandardSequence 字段的值与后台一致,后台不会返回标配好友数据 CustomSequence Integer 选填 上次拉好友数据时返回的 CustomSequence,如果 CustomSequence 字段的值与后台一致,后台不会返回自定义好友数据

type GetFriendResult

type GetFriendResult struct {
	UserDataItem     []UserDataItem `json:"UserDataItem"`
	StandardSequence int            `json:"StandardSequence"`
	CustomSequence   int            `json:"CustomSequence"`
	FriendNum        int            `json:"FriendNum"`
	CompleteFlag     int            `json:"CompleteFlag"`
	NextStartIndex   int            `json:"NextStartIndex"`
}

type GetJoinedGroupList

type GetJoinedGroupList struct {
	TotalCount  int           `json:"TotalCount"`
	GroupIDList []GroupIDList `json:"GroupIdList"`
}

type Group

type Group struct {
	OwnerAccount    string           `json:"Owner_Account,omitempty"`
	Type            string           `json:"Type"`
	GroupID         string           `json:"GroupId,omitempty"`
	Name            string           `json:"Name"`
	Introduction    string           `json:"Introduction,omitempty"`
	Notification    string           `json:"Notification,omitempty"`
	FaceURL         string           `json:"FaceUrl,omitempty"`
	MaxMemberCount  int              `json:"MaxMemberCount,omitempty"`
	CreateTime      int              `json:"CreateTime,omitempty"`
	ApplyJoinOption string           `json:"ApplyJoinOption,omitempty"`
	AppDefinedData  []AppDefinedData `json:"AppDefinedData,omitempty"`
	MemberList      []MemberList     `json:"MemberList,omitempty"`
	ErrorCode       int              `json:"ErrorCode,omitempty"`
	ErrorInfo       string           `json:"ErrorInfo,omitempty"`
}

Owner_Account String 选填 群主 ID,自动添加到群成员中。如果不填,群没有群主 Type String 必填 群组形态,包括 Public(公开群),Private(私密群),ChatRoom(聊天室),AVChatRoom(音视频聊天室),BChatRoom(在线成员广播大群) GroupId String 选填 为了使得群组 ID 更加简单,便于记忆传播,腾讯云支持 App 在通过 REST API 创建群组时 自定义群组 ID Name String 必填 群名称,最长30字节,使用 UTF-8 编码,1个汉字占3个字节 Introduction String 选填 群简介,最长240字节,使用 UTF-8 编码,1个汉字占3个字节 Notification String 选填 群公告,最长300字节,使用 UTF-8 编码,1个汉字占3个字节 FaceUrl String 选填 群头像 URL,最长100字节 MaxMemberCount Integer 选填 最大群成员数量,缺省时的默认值:私有群是200,公开群是2000,聊天室是6000,音视频聊天室和在线成员广播大群无限制 ApplyJoinOption String 选填 申请加群处理方式。包含 FreeAccess(自由加入),NeedPermission(需要验证),DisableApply(禁止加群),不填默认为 NeedPermission(需要验证) 仅当创建支持申请加群的 群组 时,该字段有效 AppDefinedData Array 选填 群组维度的自定义字段,默认情况是没有的,需要开通,详情请参阅 自定义字段 MemberList Array 选填 初始群成员列表,最多500个;成员信息字段详情请参阅 群成员资料 AppMemberDefinedData Array 选填 群成员维度的自定义字段,默认情况是没有的,需要开通,详情请参阅 自定义字段

type GroupAfterCreateCallback added in v1.0.16

type GroupAfterCreateCallback struct {
	// CallbackCommand string `json:"CallbackCommand"`
	// GroupID string `json:"GroupId"`
	// OperatorAccount string `json:"Operator_Account"`
	// OwnerAccount string `json:"Owner_Account"`
	// Type string `json:"Type"`
	// Name string `json:"Name"`
	// MemberList []MemberListItem `json:"MemberList,omitempty"`
	UserDefinedDataList []UserDefinedDataList `json:"UserDefinedDataList,omitempty"`
}

type GroupBeforeCreateCallback added in v1.0.16

type GroupBeforeCreateCallback struct {
	// CallbackCommand string           `json:"CallbackCommand"`
	// OperatorAccount string           `json:"Operator_Account"`
	// OwnerAccount    string           `json:"Owner_Account"`
	// Type            string           `json:"Type"`
	// Name            string           `json:"Name"`
	CreatedGroupNum int `json:"CreatedGroupNum,omitempty"`
}

type GroupFilter

type GroupFilter struct {
	GroupBaseInfoFilter             []string `json:"GroupBaseInfoFilter"`
	MemberInfoFilter                []string `json:"MemberInfoFilter"`
	AppDefinedDataFilterGroup       []string `json:"AppDefinedDataFilter_Group"`
	AppDefinedDataFilterGroupMember []string `json:"AppDefinedDataFilter_GroupMember"`
}

type GroupIDList

type GroupIDList struct {
	GroupID     string   `json:"GroupId"`
	Type        string   `json:"Type"`
	LastMsgTime int      `json:"LastMsgTime"`
	MemberCount int      `json:"MemberCount"`
	SelfInfo    SelfInfo `json:"SelfInfo"`
}

type GroupId

type GroupId struct {
	GroupID string `json:"GroupId"`
}

type GroupInfo

type GroupInfo struct {
	GroupIDList    []string    `json:"GroupIdList"`
	ResponseFilter GroupFilter `json:"ResponseFilter"`
}

type GroupList

type GroupList struct {
	GroupIDList []GroupId `json:"GroupIdList"`
	Next        int64     `json:"Next"`
}

type GroupMemberInfo

type GroupMemberInfo struct {
	MemberNum  int          `json:"MemberNum"`
	MemberList []MemberList `json:"MemberList"`
}

type GroupMemberInfoReq

type GroupMemberInfoReq struct {
	GroupID                         string   `json:"GroupId"`
	MemberInfoFilter                []string `json:"MemberInfoFilter"`
	MemberRoleFilter                []string `json:"MemberRoleFilter"`
	AppDefinedDataFilterGroupMember []string `json:"AppDefinedDataFilter_GroupMember"`
	Limit                           int      `json:"Limit"`
	Offset                          int      `json:"Offset"`
}

type GroupMsg

type GroupMsg struct {
	GroupID               string           `json:"GroupId,omitempty"`
	Random                int              `json:"Random,omitempty"`
	FromAccount           string           `json:"From_Account,omitempty"`
	MsgPriority           string           `json:"MsgPriority,omitempty"`
	OnlineOnlyFlag        int              `json:"OnlineOnlyFlag,omitempty"`
	ForbidCallbackControl []string         `json:"ForbidCallbackControl,omitempty"`
	MsgBody               []MsgBody        `json:"MsgBody,omitempty"`
	OfflinePushInfo       *OfflinePushInfo `json:"OfflinePushInfo,omitempty"`
}

GroupId String 必填 向哪个群组发送消息 Random Integer 必填 32位随机数。如果5分钟内两条消息的随机值相同,后一条消息将被当做重复消息而丢弃 MsgPriority String 选填 消息的优先级 MsgBody Array 必填 消息体,详细可参阅 消息格式描述 From_Account String 选填 消息来源帐号,选填。如果不填写该字段,则默认消息的发送者为调用该接口时使用的 App 管理员帐号。除此之外,App 亦可通过该字段“伪造”消息的发送者,从而实现一些特殊的功能需求。需要注意的是,如果指定该字段,必须要确保字段中的帐号是存在的 ForbidCallbackControl Array 选填 消息回调禁止开关,只对单条消息有效,ForbidBeforeSendMsgCallback 表示禁止发消息前回调,ForbidAfterSendMsgCallback 表示禁止发消息后回调 OnlineOnlyFlag Integer 选填 1表示消息仅发送在线成员,默认0表示发送所有成员,音视频聊天室(AVChatRoom)和在线成员广播大群(BChatRoom)不支持该参数

type GroupType

type GroupType string

如果仅需要返回特定群组形态的群组,可以通过 GroupType 进行过滤,但此时返回的 TotalCount 的含义就变成了 App 中属于该群组形态的群组总数。不填为获取所有类型的群组。 群组形态包括 Public(公开群),Private(私密群),ChatRoom(聊天室),AVChatRoom(音视频聊天室)和 BChatRoom(在线成员广播大群)

type IMServer

type IMServer struct {
	AppId      int
	Identifier string
	SecretKey  string
	Expire     int
	Sig        string
}

func NewIMServer

func NewIMServer(appId, expire int, identifier, secretKey string, opts ...ServerOption) (IMServer, error)

func (IMServer) AccountCheck

func (s IMServer) AccountCheck(accounts []string) ([]ResultItem, error)

查询帐号 https://cloud.tencent.com/document/product/269/38417 用于查询自有帐号是否已导入即时通信 IM,支持批量查询 accounts 请求检查的帐号对象数组,单次请求最多支持100个帐号

func (IMServer) AccountImport

func (s IMServer) AccountImport(identifier, nick, faceUrl string) error

导入单个帐号 本接口适用于将 App 自有帐号导入即时通信 IM, 即在即时通信 IM 中为 App 自有帐号创建一个对应的内部 ID,使未登录过即时通信 IM 的 App 自有帐号能够使用即时通信 IM 服务。 例如,App 开发者通过 REST API 给用户 A 发送一条消息,用户 A 如果没有登录过即时通信 IM 服务, 由于腾讯内部没有用户 A 对应的内部 ID,那么给用户 A 发送消息将会失败。 需要把用户 A 的帐号导入即时通信 IM,系统为用户 A 创建一个内部 ID,才能通过 REST API 给用户 A 发送消息。

注意: 同一个帐号重复导入仅会创建1个内部 ID。 identifier String 必填 用户名,长度不超过32字节 nick String 选填 用户昵称 faceUrl String 选填 用户头像 URL

func (IMServer) AddGroupMember

func (s IMServer) AddGroupMember(groupId string, slilence int, memberList []MemberList) ([]MemberList, error)

https://cloud.tencent.com/document/product/269/1621 增加群组成员 App 管理员可以通过该接口向指定的群中添加新成员。 GroupId String 操作的群 ID Silence Integer 是否静默加人。0:非静默加人;1:静默加人。不填该字段默认为0 MemberList Array 待添加的群成员数组 Member_Account String 待添加的群成员 UserID

func (IMServer) BATCHChatMsg

func (s IMServer) BATCHChatMsg(b BatchChatMsg) (msgKey string, errList []ErrorList, err error)

批量发单聊消息 支持一次对最多500个用户进行单发消息。 与单发消息相比,该接口更适用于营销类消息、系统通知 tips 等时效性较强的消息。 管理员指定某一帐号向目标帐号批量发消息,接收方看到发送者不是管理员,而是管理员指定的帐号。 该接口不触发回调请求。 该接口不会检查发送者和接收者的好友关系(包括黑名单),同时不会检查接收者是否被禁言

func (IMServer) BlackListAdd

func (s IMServer) BlackListAdd(fromAccount string, toAccount []string) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/3718 添加黑名单 添加黑名单,支持批量添加黑名单。 From_Account String 必填 请求为该 UserID 添加黑名单 To_Account Array 必填 待添加为黑名单的用户 UserID 列表,单次请求的 To_Account 数不得超过1000

func (IMServer) BlackListCheck

func (s IMServer) BlackListCheck(fromAccount string, toAccount []string, checkType BlackListCheckType) ([]CheckResult, error)

https://cloud.tencent.com/document/product/269/3725 校验黑名单 支持批量校验黑名单。 From_Account String 必填 需要校验该 UserID 的黑名单 To_Account Array 必填 待校验的黑名单的 UserID 列表,单次请求的 To_Account 数不得超过1000 CheckType String 必填 校验模式,详情可参见 校验黑名单

func (IMServer) BlackListDelete

func (s IMServer) BlackListDelete(fromAccount string, toAccount []string) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/3719 删除黑名单 From_Account String 必填 需要删除该 UserID 的黑名单 To_Account Array 必填 待删除的黑名单的 UserID 列表,单次请求的 To_Account 数不得超过1000

func (IMServer) BlackListGet

func (s IMServer) BlackListGet(b BlackList) (BlackListResult, error)

https://cloud.tencent.com/document/product/269/3722 拉取黑名单 支持分页拉取所有黑名单。

func (IMServer) CallbackAfterCreateGroup

func (s IMServer) CallbackAfterCreateGroup(commandFunc CallGroup)

创建群组之后回调 功能说明 App 后台可以通过该回调实时监控用户创建群组的信息,包括: 通知 App 后台有群组创建成功,App 后台可以据此进行数据同步等操作。 可能触发该回调的场景 App 用户通过客户端创建群组成功 App 管理员通过 REST API 创建群组成功

func (IMServer) CallbackAfterGroupDestroyed

func (s IMServer) CallbackAfterGroupDestroyed(commandFunc CallGroup)

群组解散之后回调 功能说明 App 后台可以通过该回调实时监控群组的解散动态,包括:对群组的解散实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 App 用户通过客户端解散群组。 App 管理员通过 REST API 解散群组。

func (IMServer) CallbackAfterGroupInfoChanged

func (s IMServer) CallbackAfterGroupInfoChanged(commandFunc CallGroup)

群组资料修改之后回调 功能说明 App 后台可以通过该回调实时监控群组资料(群名称、群简介、群公告、群头像及群维度自定义字段)的变更,包括对修改群组资料的实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 哪些内容会触发回调 群组资料包括 群基础资料 和 群组维度自定义字段。 目前,群基础资料中的群组名称、群组简介、群组公告和群组头像 URL 被修改后,可能触发该回调。其他群基础资料被修改后暂不会触发。 哪些方式会触发回调 App 用户通过客户端修改群组资料。 App 管理员通过 REST API 修改群组资料

func (IMServer) CallbackAfterMemberExit

func (s IMServer) CallbackAfterMemberExit(commandFunc CallGroup)

群成员离开之后回调 功能说明 App 后台可以通过该回调实时监控用户的退群动态,包括:对用户退群进行实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 App 用户通过客户端退群。 App 用户通过客户端踢人。 App 管理员通过 REST API 删除群成员

func (IMServer) CallbackAfterNewMemberJoin

func (s IMServer) CallbackAfterNewMemberJoin(commandFunc CallGroup)

新成员入群之后回调 功能说明 App 后台可以通过该回调实时监控群成员加入的消息,包括:通知 App 后台有成员入群,App 可以据此进行必要的数据同步。 可能触发该回调的场景 App 用户通过客户端主动申请加群并得到通过。 App 用户通过客户端拉其他人入群成功。 App 管理员通过 REST API 添加用户到群组。

func (IMServer) CallbackAfterSendMsg

func (s IMServer) CallbackAfterSendMsg(commandFunc C2CCallBack)

发单聊消息之后回调 功能说明 App 后台可以通过该回调实时监控用户的单聊消息,包括: 对单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。 对单聊消息进行数据统计(例如人数,消息数等)。 可能触发该回调的场景 App 用户通过客户端发送单聊消息。 App 管理员通过 REST API(sendmsg 接口)发送单聊消息。 若消息下发失败(例如被脏字过滤),仍会触发该回调。

func (IMServer) CallbackBeforeApplyJoinGroup

func (s IMServer) CallbackBeforeApplyJoinGroup(commandFunc CallGroup)

申请入群之前回调 功能说明 App 后台可以通过该回调实时监控用户申请加群的请求,包括:App 后台可以拦截用户申请加群的操作。 可能触发该回调的场景 App 用户通过客户端发起加群申请

func (IMServer) CallbackBeforeCreateGroup

func (s IMServer) CallbackBeforeCreateGroup(commandFunc CallGroup)

创建群组之前回调 功能说明 App 后台可以通过该回调实时监控用户创建群组的请求,包括后台可以拒绝用户创建群组的请求。 可能触发该回调的场景 App 用户通过客户端创建群组 App 管理员通过 REST API 创建群组

func (IMServer) CallbackBeforeInviteJoinGroup

func (s IMServer) CallbackBeforeInviteJoinGroup(commandFunc CallGroup)

拉人入群之前回调 功能说明 App 后台可以通过该回调实时监控群成员拉其他用户入群的请求,包括:App 后台可以拦截群成员直接将其他用户拉入群的请求 可能触发该回调的场景 App 用户通过客户端发起将其他用户拉入群的请求。 App 管理员通过 REST API 添加用户到群组。

func (IMServer) CallbackBeforeSendMsg

func (s IMServer) CallbackBeforeSendMsg(commandFunc C2CCallBack)

发单聊消息之前回调 App 后台可以通过该回调实时监控用户的单聊消息,包括: 对发单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。 拦截用户的单聊发言请求。可拦截所有类型的消息,如文本、图像、自定义消息等。 修改用户发言内容(例如敏感词过滤,或者增加一些 App 自定义信息)。目前不支持修改语音、图像、文件和视频等富媒体的消息内容,但支持将这些富媒体消息修改成文本、自定义消息等。 可能触发该回调的场景 App 用户通过客户端发送单聊消息。 App 管理员通过 REST API (sendmsg 接口)发送单聊消息

func (IMServer) CallbackBlackListAdd

func (s IMServer) CallbackBlackListAdd(commandFunc FriendAddCallBack)

添加黑名单之后回调 App 后台可以通过该回调实时监控黑名单的添加情况。 可能触发该回调的场景 App 用户通过客户端发起添加黑名单的请求。 App 后台通过 REST API 发起添加黑名单的请求。

func (IMServer) CallbackBlackListDelete

func (s IMServer) CallbackBlackListDelete(commandFunc FriendAddCallBack)

删除黑名单之后回调 App 后台可以通过该回调实时监控用户黑名单的删除情况。 可能触发该回调的场景 App 用户通过客户端发起删除黑名单请求。 App 后台通过 REST API 发起删除黑名单请求。

func (IMServer) CallbackFriendAdd

func (s IMServer) CallbackFriendAdd(commandFunc FriendAddCallBack)

添加好友之后回调 App 后台可以通过该回调实时监控用户的新增好友信息。 可能触发该回调的场景 App 后台通过 REST API 发起加好友请求,请求添加双向好友,且对方的加好友验证方式是“允许任何人”。 App 用户通过客户端发起加好友请求,请求添加双向好友,且对方的加好友验证方式是“允许任何人”。 App 后台通过 REST API 发起加好友请求,请求添加单向好友。 App 用户通过客户端发起加好友请求,请求添加单向好友。 App 用户收到加好友请求后,同意添加对方为好友。 App 后台通过 REST API 强制加好友 通过调用 导入好友 接口添加好友时,不会触发此回调。

func (IMServer) CallbackFriendDelete

func (s IMServer) CallbackFriendDelete(commandFunc FriendAddCallBack)

删除好友之后回调 App 后台可以通过该回调实时监控用户的好友删除信息。 可能触发该回调的场景 App 用户通过客户端发起删除好友的请求。 App 后台通过 REST API 发起删除好友的请求。

func (IMServer) CallbackGroupAfterGroupFull

func (s IMServer) CallbackGroupAfterGroupFull(commandFunc CallGroup)

群组满员之后回调 功能说明 App 后台可以通过该回调实时监控群组满员的动态,包括:删除一部分不活跃的群成员,以确保用户能够加入该群。 可能触发该回调的场景 App 用户通过客户端申请加群。 App 用户通过客户端邀请加群。 App 管理员通过 REST API 增加群组成员。

func (IMServer) CallbackGroupAfterSendMsg

func (s IMServer) CallbackGroupAfterSendMsg(commandFunc CallGroup)

群内发言之后回调 功能说明 App 后台可以通过该回调实时监控用户的群发消息,包括:通知 App 后台有群组消息发送成功,App 可以据此进行必要的数据同步。 可能触发该回调的场景 App 用户通过客户端发送群消息。 App 管理员通过 REST API 发送群组消息。

func (IMServer) CallbackGroupBeforeSendMsg

func (s IMServer) CallbackGroupBeforeSendMsg(commandFunc CallGroup)

群内发言之前回调 功能说明 App 后台可以通过该回调实时监控用户的群发消息,包括: 对群消息进行实时记录(例如记录日志,或者同步到其他系统)。 拦截用户在群内发言的请求。 修改用户发言内容(例如敏感词过滤,或者增加一些 App 自定义信息) 可能触发该回调的场景 App 用户通过客户端发送群消息。 App 管理员通过 REST API 发送群组消息。

func (IMServer) CallbackStateChange

func (s IMServer) CallbackStateChange(commandFunc StateCallBack)

func (IMServer) ChangeGroupOwner

func (s IMServer) ChangeGroupOwner(groupId string, newOwnerAcoount string) error

https://cloud.tencent.com/document/product/269/1633 转让群主 App 管理员可以通过该接口将群主转移给他人。 没有群主的群也可以转让,新群主不能为空。 GroupId 必填 要被转移的群组 ID NewOwner_Account 必填 新群主 ID

func (IMServer) CreateGroup

func (s IMServer) CreateGroup(g Group) (string, error)

https://cloud.tencent.com/document/product/269/1615 创建群组 App 管理员可以通过该接口创建群组。

func (IMServer) DeleteAccount

func (s IMServer) DeleteAccount(accounts []string) ([]ResultItem, error)

仅支持删除体验版帐号。 帐号删除时,该用户的关系链、资料等数据也会被删除。 帐号删除后,该用户的数据将无法恢复,请谨慎使用该接口。 accounts Array 必填 请求删除的帐号的 UserID,单次请求最多支持100个帐号 DeleteResultItem Array 单个帐号的结果对象数组 ResultCode Integer 单个帐号的错误码,0表示成功,非0表示失败 ResultInfo String 单个帐号删除失败时的错误描述信息 UserID String 请求删除的帐号的 UserID

func (IMServer) DeleteGroupMember

func (s IMServer) DeleteGroupMember(groupID, reason string, silence int, memberToDelAccount []string) error

https://cloud.tencent.com/document/product/269/1622 删除群组成员 App 管理员可以通过该接口删除群成员。 GroupId String 必填 操作的群 ID Silence Integer 选填 是否静默删人。0表示非静默删人,1表示静默删人。静默即删除成员时不通知群里所有成员,只通知被删除群成员。不填写该字段时默认为0 Reason String 选填 踢出用户原因 MemberToDel_Account Array 必填 待删除的群成员

func (IMServer) DeleteGroupMsgBySender

func (s IMServer) DeleteGroupMsgBySender(groupId string, senderAccount string) error

https://cloud.tencent.com/document/product/269/2359 删除指定用户发送的消息 该 API 接口的作用是删除最近1000条消息中指定用户发送的消息。 GroupId 必填 要删除消息的群 ID Sender_Account 必填 被删除消息的发送者 ID

func (IMServer) DestroyGroup

func (s IMServer) DestroyGroup(groupId string) error

https://cloud.tencent.com/document/product/269/1624 解散群组 App 管理员通过该接口解散群。 GroupId String 必填 操作的群 ID

func (IMServer) Do added in v1.0.2

func (s IMServer) Do(path ApiPath, v interface{}) (jsons []byte, err error)

func (IMServer) ForbidSendMsg

func (s IMServer) ForbidSendMsg(groupID string, membersAccount []string, shutUpTime int) error

https://cloud.tencent.com/document/product/269/1627 批量禁言和取消禁言 App 管理员禁止指定群组中某些用户在一段时间内发言。 App 管理员取消对某些用户的禁言。 被禁言用户退出群组之后再进入同一群组,禁言仍然有效 GroupId 必填 需要查询的群组 ID Members_Account 必填 需要禁言的用户帐号,最多支持500个帐号 ShutUpTime 必填 需禁言时间,单位为秒,为0时表示取消禁言

func (IMServer) FriendAdd

func (s IMServer) FriendAdd(f Friend) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/1643 添加好友,支持批量添加好友。

func (IMServer) FriendCheck

func (s IMServer) FriendCheck(fromAccount string, toAccount []string, checkType CheckType) ([]CheckResult, error)

https://cloud.tencent.com/document/product/269/1646 校验好友 支持批量校验好友关系。 From_Account String 必填 需要校验该 UserID 的好友 To_Account Array 必填 请求校验的好友的 UserID 列表,单次请求的 To_Account 数不得超过1000 CheckType String 必填 校验模式,详情可参见 校验好友

func (IMServer) FriendDelete

func (s IMServer) FriendDelete(fromAccount string, toAccount []string, deleteType DeleteType) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/1644 删除好友 删除好友,支持单向删除好友和双向删除好友。 From_Account String 必填 需要删除该 UserID 的好友 To_Account Array 必填 待删除的好友的 UserID 列表,单次请求的 To_Account 数不得超过1000 DeleteType String 选填 删除模式,详情可参见

func (IMServer) FriendDeleteAll

func (s IMServer) FriendDeleteAll(fromAccount string, deleteType DeleteType) error

https://cloud.tencent.com/document/product/269/1645 删除所有好友 清除指定用户的标配好友数据和自定义好友数据。 From_Account String 必填 指定要清除好友数据的用户的 UserID DeleteType String 选填 删除模式,默认删除单向好友,详情可参见 删除好友

func (IMServer) FriendGet

func (s IMServer) FriendGet(f GetFriend) (GetFriendResult, error)

https://cloud.tencent.com/document/product/269/1646 拉取好友 分页拉取全量好友数据。 不支持资料数据的拉取。 不需要指定请求拉取的字段,默认返回全量的标配好友数据和自定义好友数据。

func (IMServer) FriendGetList

func (s IMServer) FriendGetList(fromAccount string, toAccount []string, tagList []ProfileTag) ([]InfoItem, error)

https://cloud.tencent.com/document/product/269/8609 拉取指定好友 支持拉取指定好友的好友数据和资料数据。 建议每次拉取的好友数不超过100,避免因数据量太大导致回包失败 From_Account String 必填 指定要拉取好友数据的用户的 UserID To_Account Array 必填 好友的 UserID 列表 建议每次请求的好友数不超过100,避免因数据量太大导致回包失败 TagList Array 必填 指定要拉取的资料字段及好友字段: 标配资料字段 标配好友字段

func (IMServer) FriendImport

func (s IMServer) FriendImport(f ImportFriend) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/8301 导入好友 支持批量导入单向好友。 往同一个用户导入好友时建议采用批量导入的方式,避免并发写导致的写冲突。

func (IMServer) FriendUpdate

func (s IMServer) FriendUpdate(f UpdateFriend) ([]FriendResultItem, error)

https://cloud.tencent.com/document/product/269/12525 更新好友 支持批量更新同一用户的多个好友的关系链数据。 更新一个用户多个好友时,建议采用批量方式,避免并发写导致的写冲突。

func (IMServer) GetAllGroup

func (s IMServer) GetAllGroup(limit, next int, groupType GroupType) (GroupList, error)

https://cloud.tencent.com/document/product/269/1614 获取 App 中的所有群组 App 管理员可以通过该接口获取 App 中所有群组的 ID。 如果 App 中的总群数量超过10000个,最多只会返回10000个群组 ID(如果需要完整获取,必须使用分页拉取的形式)。 可以使用 Limit 和 Next 两个值用于控制分页拉取: Limit 限制回包中 GroupIdList 中群组的个数,不得超过10000。 Next 控制分页。对于分页请求,第一次填0,后面的请求填上一次返回的 Next 字段,当返回的 Next 为0,代表所有的群都已拉取到。 例如:假设需要分页拉取,每页展示 20 个,则第一页的请求参数应当为{“Limit” : 20, “Next” : 0},第二页的请求参数应当为{“Limit” : 20, “Next” : 上次返回的Next字段},依此类推。

func (IMServer) GetAppInfo

func (s IMServer) GetAppInfo(field ...AppInfoField) ([]Info, error)

https://cloud.tencent.com/document/product/269/4193 拉取运营数据 App 管理员可以通过该接口拉取最近30天的运营数据,可拉取的字段见下文可拉取的运营字段 Field 选填 该字段用来指定需要拉取的运营数据,不填默认拉取所有字段。详细可参阅下文可拉取的运营字段

func (IMServer) GetGroupInfo

func (s IMServer) GetGroupInfo(g GroupInfo) ([]Group, error)

https://cloud.tencent.com/document/product/269/1616 获取群组详细资料 App 管理员可以根据群组 ID 获取群组的详细信息。

func (IMServer) GetGroupMemberInfo

func (s IMServer) GetGroupMemberInfo(g GroupMemberInfoReq) (GroupMemberInfo, error)

https://cloud.tencent.com/document/product/269/1617 获取群组成员详细资料 App 管理员可以根据群组 ID 获取群组成员的资料。 可以使用 Limit 和 Offset 两个值用于控制分页拉取: Limit 限制回包中 MemberList 数组中成员的个数,不得超过6000。 Offset 控制从群成员中的第多少个成员开始拉取信息。对于分页请求(页码数字从1开始),每一页的 Offset 值应当为:(页码数– 1)×每页展示的群成员数量。 例如:假设需要分页拉取,每页展示 20 个,则第一页的请求参数应当为:{“Limit” : 20, “Offset” : 0},第二页的请求参数应当为{“Limit” : 20, “Offset” : 20},依此类推。

func (IMServer) GetGroupShuttedUin

func (s IMServer) GetGroupShuttedUin(groupId string) ([]ShuttedUinList, error)

https://cloud.tencent.com/document/product/269/2925 获取群组被禁言用户列表 App 管理员可以根据群组 ID 获取群组中被禁言的用户列表。 GroupId String 必填 需要获取被禁言成员列表的群组 ID。 ShuttedUinList 返回结果为禁言用户信息数组,内容包括被禁言的成员 ID,及其被禁言到的时间(使用 UTC 时间,即世界协调时间)

func (IMServer) GetHistory

func (s IMServer) GetHistory(chatType, msgTime string) ([]Msg, error)

下载消息记录 https://cloud.tencent.com/document/product/269/1650 App 管理员可以通过该接口获取 App 中某天某小时的所有单发或群组消息记录的下载地址。 消息记录以日志文件形式保存并使用 GZip 压缩,通过该接口获取到下载地址后,请自行下载并处理;消息记录文件每小时产生一次, 例如0点(00:00~00:59)的数据在01:00后开始处理,一般1小时内处理完毕(消息较多则处理时间较长); 文件有效期3天,无论是否下载过,都会在3天后删除;获取到的下载地址存在有效期,请在过期前进行下载,若地址失效,请通过该接口重新获取 ChatType String 必填 消息类型,C2C 表示单发消息 Group 表示群组消息 MsgTime String 必填 需要下载的消息记录的时间段,2015120121表示获取2015年12月1日21:00 - 21:59的消息的下载地址。该字段需精确到小时。每次请求只能获取某天某小时的所有单发或群组消息记录

func (IMServer) GetJoinedGroupList

func (s IMServer) GetJoinedGroupList(j JoinGroupList) (GetJoinedGroupList, error)

https://cloud.tencent.com/document/product/269/1625 获取用户所加入的群组 App 管理员可以通过本接口获取某一用户加入的公开群、聊天室、已激活的私有群信息。默认不获取用户加入的未激活私有群以及音视频聊天室和在线成员广播大群信息。

func (IMServer) GetNoSpeaking

func (s IMServer) GetNoSpeaking(account string) (C2CmsgNospeakingTime int64, groupmsgNospeakingTime int64, err error)

https://cloud.tencent.com/document/product/269/4229 查询帐号的群组消息全局禁言。 C2CmsgNospeakingTime Number 单聊消息禁言时长,单位为秒,非负整数。等于 0 代表没有被设置禁言; 等于最大值4294967295(十六进制 0xFFFFFFFF)代表被设置永久禁言;其它代表该帐号禁言时长,如果等于3600表示该帐号被禁言一小时 GroupmsgNospeakingTime Number 群组消息禁言时长,单位为秒,非负整数。等于0代表没有被设置禁言; 等于最大值4294967295(十六进制 0xFFFFFFFF)代表被设置永久禁言;其它代表该帐号禁言时长,如果等于3600表示该帐号被禁言一小时

func (IMServer) GetPortrait

func (s IMServer) GetPortrait(p PortraitReq) (resp PortraitResp, err error)

https://cloud.tencent.com/document/product/269/1639 拉取资料 支持拉取好友和非好友的资料字段。 支持拉取 标配资料字段 和 自定义资料字段。 建议每次拉取的用户数不超过100,避免因回包数据量太大导致回包失败。 请确保请求中的所有帐号都已导入即时通信 IM,如果请求中含有未导入即时通信 IM 的帐号,即时通信 IM 后台将会提示错误。

func (IMServer) GetRoamMsg

func (s IMServer) GetRoamMsg(m RoamMsgReq) (err error)

查询单聊消息 管理员按照时间范围查询某单聊会话的消息记录。 查询的单聊会话由请求中的 From_Account 和 to_Account 指定。查询结果包含会话双方互相发送的消息,具体每条消息的发送方和接收方由每条消息里的 From_Account 和 to_Account 指定。 请求中的 From_Account 和 to_Account 字段值互换,查询结果不变。 查询结果包含被撤回的消息,由消息里的 MsgFlagBits 字段标识。 若想通过 REST API 撤回单聊消息 接口撤回某条消息,可先用本接口查询出该消息的 MsgKey,然后再调用撤回接口进行撤回。 可查询的消息记录的时间范围取决于漫游消息存储时长,默认是7天。支持在控制台修改消息漫游时长,延长消息漫游时长是增值服务。具体请参考 漫游消息存储。 首次查询时,建议 MaxCnt 填20,应答里的 Complete 字段表示是否已拉完该时间段内的消息。

func (IMServer) GetRoleInGroup

func (s IMServer) GetRoleInGroup(groupID string, userAccount []string) ([]MemberList, error)

https://cloud.tencent.com/document/product/269/1626 查询用户在群组中的身份 GroupId String 必填 需要查询的群组 ID User_Account Array 必填 表示需要查询的用户帐号,最多支持500个帐号 UserIdList Array 拉取到的成员在群内的身份信息,可能的身份包括:Owner:群主,Admin:群管理员,Member:群成员,NotMember:非群成员

func (IMServer) GroupAdd

func (s IMServer) GroupAdd(fromAccount string, groupName, toAccount []string) ([]FriendResultItem, error)

添加分组 添加分组,支持批量添加分组,并将指定好友加入到新增分组中。 From_Account String 必填 需要为该 UserID 添加新分组 GroupName Array 必填 新增分组列表 To_Account Array 选填 需要加入新增分组的好友的 UserID 列表

func (IMServer) GroupDelete

func (s IMServer) GroupDelete(fromAccount string, groupName []string) error

删除分组 删除指定分组。 From_Account String 必填 需要删除该 UserID 的分组 GroupName Array 必填 要删除的分组列表

func (IMServer) GroupMsgGetSimple

func (s IMServer) GroupMsgGetSimple(groupId string, reqMsgSeq int, reqMsgNumber int) (RoamingMessage, error)

https://cloud.tencent.com/document/product/269/2738 拉取群漫游消息 即时通信 IM 的群消息是按 Seq 排序的,按照 server 收到群消息的顺序分配 Seq,先发的群消息 Seq 小,后发的 Seq 大。 如果用户想拉取一个群的全量消息,首次拉取时不用填拉取 Seq,Server 会自动返回最新的消息,以后拉取时拉取 Seq 填上次返回的最小 Seq 减1。 如果返回消息的 IsPlaceMsg 为1,表示这个 Seq 的消息或者过期、或者存储失败、或者被删除了。

 GroupId				必填	要拉取漫游消息的群组 ID
	ReqMsgNumber		必填	拉取的漫游消息的条数,目前一次请求最多返回20条漫游消息,所以这里最好小于等于20
	ReqMsgSeq			选填	拉取消息的最大 seq

func (IMServer) GroupMsgRecall

func (s IMServer) GroupMsgRecall(groupID string, msgSeqList []MsgSeqList) ([]RecallRetList, error)

https://cloud.tencent.com/document/product/269/12341 撤回群组消息 GroupId 必填 操作的群 ID MsgSeqList 必填 被撤回的消息 seq 列表,一次请求最多可以撤回10条消息 seq MsgSeq 必填 请求撤回的消息 seq

func (IMServer) ImportGroup

func (s IMServer) ImportGroup(g Group) (string, error)

https://cloud.tencent.com/document/product/269/1634 导入群基础资料 App 管理员可以通过该接口导入群组,不会触发回调、不会下发通知;当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群组数据

func (IMServer) ImportGroupMember

func (s IMServer) ImportGroupMember(groupId string, list []MemberList) ([]MemberList, error)

https://cloud.tencent.com/document/product/269/1636 导入群成员 该 API 接口的作用是导入群组成员,不会触发回调、不会下发通知。 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群成员数据 GroupId 必填 操作的群 ID MemberList 必填 待添加的群成员数组。

func (IMServer) ImportGroupMsg

func (s IMServer) ImportGroupMsg(groupId string, msgs []MsgList) ([]ImportMsgResult, error)

https://cloud.tencent.com/document/product/269/1635 导入群消息 该 API 接口的作用是导入群组的消息,不会触发回调、不会下发通知。 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群消息数据

func (IMServer) ImportMsg

func (s IMServer) ImportMsg(b SingleChatMsg) (err error)

导入单聊消息 导入历史单聊消息到即时通信 IM。 平滑过渡期间,将原有即时通信实时单聊消息导入到即时通信 IM。 该接口不会触发回调。 该接口会根据 From_Account , To_Account , MsgRandom , MsgTimeStamp 字段的值对导入的消息进行去重。仅当这四个字段的值都对应相同时,才判定消息是重复的,消息是否重复与消息内容本身无关。 重复导入的消息不会覆盖之前已导入的消息(即消息内容以首次导入的为准)。

func (IMServer) Kick

func (s IMServer) Kick(userId string) error

https://cloud.tencent.com/document/product/269/3853 失效帐号登录态 本接口适用于将 App 用户帐号的登录态(例如 UserSig)失效。 例如,开发者判断一个用户为恶意帐号后,可以调用本接口将该用户当前的登录态失效,这样用户使用历史 UserSig 登录即时通信 IM 会失败 使用该接口将用户登录态失效后,用户如果使用重新生成的 UserSig 可以成功登录即时通信 IM,接口支持一次失效一个帐号。 userId String 必填 用户名

func (IMServer) ListenCallback

func (s IMServer) ListenCallback()

func (IMServer) ModifyGroupBaseInfo

func (s IMServer) ModifyGroupBaseInfo(m ModifyGroup) error

https://cloud.tencent.com/document/product/269/1620 修改群组基础资料 App 管理员可以通过该接口修改指定群组的基础信息。 GroupId String 必填 需要修改基础信息的群组的 ID Name String 选填 群名称,最长30字节 Introduction String 选填 群简介,最长240字节 Notification String 选填 群公告,最长300字节 FaceUrl String 选填 群头像 URL,最长100字节 MaxMemberNum Integer 选填 最大群成员数量,最大为6000 ApplyJoinOption String 选填 申请加群处理方式。包含 FreeAccess(自由加入),NeedPermission(需要验证),DisableApply(禁止加群)

func (IMServer) ModifyGroupMemberInfo

func (s IMServer) ModifyGroupMemberInfo(m ModifyGroupMemberInfo) error

https://cloud.tencent.com/document/product/269/1623 修改群成员资料 App 管理员可以通过该接口修改群成员资料。

func (IMServer) MsgWithdraw

func (s IMServer) MsgWithdraw(m MsgWithdraw) error

撤回单聊消息 管理员撤回单聊消息。 该接口可以撤回所有单聊消息,包括客户端发出的单聊消息,由 REST API 单发 和 批量发 接口发出的单聊消息。 若需要撤回由客户端发出的单聊消息,您可以开通 发单聊消息之前回调 或 发单聊消息之后回调 ,通过该回调接口记录每条单聊消息的 MsgKey ,然后填在本接口的 MsgKey 字段进行撤回。您也可以通过 查询单聊消息 查询出待撤回的单聊消息的 MsgKey 后,填在本接口的 MsgKey 字段进行撤回。 若需要撤回由 REST API 单发 和 批量发 接口发出的单聊消息,需要记录这些接口回包里的 MsgKey 字段以进行撤回。 调用该接口撤回消息后,该条消息的离线、漫游存储,以及消息发送方和接收方的客户端的本地缓存都会被撤回。 该接口可撤回的单聊消息没有时间限制,即可以撤回任何时间的单聊消息。

func (IMServer) MultiAccountImports

func (s IMServer) MultiAccountImports(account []string) ([]string, error)

本接口单次最多支持导入100个帐号,同一个帐号重复导入仅会创建1个内部 ID。 Accounts Array 必填 用户名,单个用户名长度不超过32字节,单次最多导入100个用户名 FailAccounts Array 导入失败的帐号列表

func (IMServer) PostPushAll added in v1.0.1

func (s IMServer) PostPushAll(m PushMsg) (*PushResp, error)

https://cloud.tencent.com/document/product/269/45934 支持全员推送。 支持按用户属性推送。 支持按用户标签推送。 管理员推送消息,接收方看到消息发送者是管理员。 管理员指定某一帐号向其他帐号推送消息,接收方看到发送者不是管理员,而是管理员指定的帐号。 支持消息离线存储,不支持漫游。 由于全员推送需要下发的帐号数量巨大,下发完全部帐号需要一定时间(根据帐号总数而定,一般在一分钟内)。 Condition Object 选填 Condition 共有4种条件类型,分别是: 属性的或条件 AttrsOr 属性的与条件 AttrsAnd 标签的或条件 TagsOr 标签的与条件 TagsAnd AttrsOr 和 AttrsAnd 可以并存,TagsOr 和 TagsAnd 也可以并存。但是标签和属性条件不能并存。如果没有 Condition,则推送给全部用户 MsgRandom Integer 必填 消息随机数,由随机函数产生。用于推送任务去重。对于不同的推送请求,MsgRandom7 天之内不能重复,否则视为相同的推送任务(调用推送 API 返回失败的时候可以用相同的 MsgRandom 进行重试) MsgBody Object 必填 消息内容,具体格式请参考 MsgBody 消息内容说明(一条消息可包括多种消息元素,所以 MsgBody 为 Array 类型) MsgType String 必填 TIM 消息对象类型,目前支持的消息对象包括: TIMTextElem(文本消息) TIMLocationElem(位置消息) TIMFaceElem(表情消息) TIMCustomElem(自定义消息) TIMSoundElem(语音消息) TIMImageElem(图像消息) TIMFileElem(文件消息) TIMVideoFileElem(视频消息) MsgContent Object 必填 对于每种 MsgType,用不同的 MsgContent 格式,具体可参考 TIMMsgElement 对象 的定义 MsgLifeTime Integer 选填 消息离线存储时间,单位秒,最多保存7天(604800秒)。默认为0,表示不离线存储 From_Account String 选填 消息推送方帐号 AttrsOr Object 选填 属性条件的并集。注意属性推送和标签推送不可同时作为推送条件 AttrsAnd Object 选填 属性条件的交集。注意属性推送和标签推送不可同时作为推送条件 TagsOr Object 选填 标签条件的并集。标签是一个不超过50字节的字符串。注意属性推送和标签推送不可同时作为推送条件。TagsOr 条件中的标签个数不能超过10个 TagsAnd Object 选填 标签条件的交集。标签是一个不超过50字节的字符串。注意属性推送和标签推送不可同时作为推送条件。TagsAnd 条件中的标签个数不能超过10个 OfflinePushInfo Object 选填 离线推送信息配置,具体可参考 消息格式描述

func (IMServer) QueryState

func (s IMServer) QueryState(accounts []string, isNeedDetail int) ([]ResultItem, error)

https://cloud.tencent.com/document/product/269/2566 查询帐号在线状态 获取用户当前的登录状态

func (IMServer) SendGroupMsg

func (s IMServer) SendGroupMsg(m GroupMsg) error

https://cloud.tencent.com/document/product/269/1629 在群组中发送普通消息 App 管理员可以通过该接口在群组中发送普通消息

func (IMServer) SendGroupSystemNotification

func (s IMServer) SendGroupSystemNotification(groupID string, content string, toMembersAccount []string) error

https://cloud.tencent.com/document/product/269/1630 在群组中发送系统通知 GroupId String 必填 向哪个群组发送系统通知 ToMembers_Account Array 选填 接收者群成员列表,请填写接收者 UserID,不填或为空表示全员下发 Content String 必填 系统通知的内容

func (IMServer) SendMsg

func (s IMServer) SendMsg(b SingleChatMsg) (msgTime int64, msgKey string, err error)

单发单聊消息 管理员向帐号发消息,接收方看到消息发送者是管理员。 管理员指定某一帐号向其他帐号发消息,接收方看到发送者不是管理员,而是管理员指定的帐号。 该接口不会检查发送者和接收者的好友关系(包括黑名单),同时不会检查接收者是否被禁言 MsgTime Integer 消息时间戳,UNIX 时间戳 MsgKey String 消息唯一标识,用于撤回。长度不超过50个字符

func (IMServer) SetNoSpeaking

func (s IMServer) SetNoSpeaking(account string, C2CmsgNospeakingTime, groupmsgNospeakingTime int64) error

https://cloud.tencent.com/document/product/269/4230 设置帐号的群组消息全局禁言。 C2CmsgNospeakingTime 和 GroupmsgNospeakingTime 是选填字段,但不能两个都不填 account String 必填 设置禁言配置的帐号 C2CmsgNospeakingTime Integer 选填 单聊消息禁言时间,单位为秒,非负整数, 最大值为4294967295(十六进制 0xFFFFFFFF)。等于0代表取消帐号禁言; 等于最大值4294967295(十六进制 0xFFFFFFFF)代表帐号被设置永久禁言;其它代表该帐号禁言时间 GroupmsgNospeakingTime Integer 选填 群组消息禁言时间,单位为秒,非负整数,最大值为4294967295(十六进制 0xFFFFFFFF)。 等于0代表取消帐号禁言;最大值4294967295(十六进制 0xFFFFFFFF)代表帐号被设置永久禁言;其它代表该帐号禁言时间

func (IMServer) SetPortrait

func (s IMServer) SetPortrait(p PortraitSet) error

设置资料 支持 标配资料字段 和 自定义资料字段 的设置。

func (IMServer) SetUnreadMsgNum

func (s IMServer) SetUnreadMsgNum(group, memberAccount string, unReadMsgNum int) error

https://cloud.tencent.com/document/product/269/1637 设置成员未读消息计数 App 管理员使用该接口设置群组成员未读消息数,不会触发回调、不会下发通知。 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议设置群成员的未读消息计数 GroupId 必填 操作的群 ID Member_Account 必填 要操作的群成员 UnreadMsgNum 必填 成员未读消息数

type ImageInfoItem added in v1.0.10

type ImageInfoItem struct {
	Type   uint   `json:"Type"`   //	图片类型: 1-原图,2-大图,3-缩略图。
	Size   uint   `json:"Size"`   //   图片数据大小,单位:字节。
	Width  int    `json:"Width"`  //   图片宽度。
	Height int    `json:"Height"` //	图片高度。
	URL    string `json:"Url"`    //   图片下载地址。
}

图片信息

type ImportFriend

type ImportFriend struct {
	AddFriendItem []ImportFriendItem `json:"AddFriendItem"`
	FromAccount   string             `json:"From_Account"`
}

From_Account String 必填 需要为该 UserID 添加好友 AddFriendItem Array 必填 好友结构体对象

type ImportFriendItem

type ImportFriendItem struct {
	ToAccount  string   `json:"To_Account"`
	AddTime    int64    `json:"AddTime"`
	Remark     string   `json:"Remark"`
	AddSource  string   `json:"AddSource"`
	GroupName  []string `json:"GroupName"`
	AddWording string   `json:"AddWording"`
}

To_Account String 必填 好友的 UserID Remark String 选填 From_Account 对 To_Account 的好友备注,详情可参见 标配好友字段 RemarkTime Integer 选填 From_Account 对 To_Account 的好友备注时间 GroupName Array 选填 From_Account 对 To_Account 的分组信息,详情可参见 标配好友字段 AddSource String 必填 加好友来源字段,详情可参见 标配好友字段 AddWording String 选填 From_Account 和 To_Account 形成好友关系时的附言信息,详情可参见 标配好友字段 AddTime Integer 选填 From_Account 和 To_Account 形成好友关系的时间 CustomItem Array 选填 From_Account 对 To_Account 的自定义好友数据,每一个成员都包含一个 Tag 字段和一个 Value 字段,详情可参见 自定义好友字段 Tag String 选填 自定义好友字段的名称,使用前请通过即时通信 IM 控制台 >【应用配置】>【功能配置】申请自定义好友字段 Value String/Integer 选填 自定义好友字段的值

type ImportMsgResult

type ImportMsgResult struct {
	Result  int   `json:"Result"`
	MsgSeq  int   `json:"MsgSeq"`
	MsgTime int64 `json:"MsgTime"`
}

type Info

type Info struct {
	APNSMsgNum           string `json:"APNSMsgNum"`
	ActiveUserNum        string `json:"ActiveUserNum"`
	AppID                string `json:"AppId"`
	AppName              string `json:"AppName"`
	C2CAPNSMsgNum        string `json:"C2CAPNSMsgNum"`
	C2CDownMsgNum        string `json:"C2CDownMsgNum"`
	C2CSendMsgUserNum    string `json:"C2CSendMsgUserNum"`
	C2CUpMsgNum          string `json:"C2CUpMsgNum"`
	CallBackReq          string `json:"CallBackReq"`
	CallBackRsp          string `json:"CallBackRsp"`
	ChainDecrease        string `json:"ChainDecrease"`
	ChainIncrease        string `json:"ChainIncrease"`
	Company              string `json:"Company"`
	Date                 string `json:"Date"`
	DownMsgNum           string `json:"DownMsgNum"`
	GroupAPNSMsgNum      string `json:"GroupAPNSMsgNum"`
	GroupAllGroupNum     string `json:"GroupAllGroupNum"`
	GroupDestroyGroupNum string `json:"GroupDestroyGroupNum"`
	GroupDownMsgNum      string `json:"GroupDownMsgNum"`
	GroupJoinGroupTimes  string `json:"GroupJoinGroupTimes"`
	GroupNewGroupNum     string `json:"GroupNewGroupNum"`
	GroupQuitGroupTimes  string `json:"GroupQuitGroupTimes"`
	GroupSendMsgGroupNum string `json:"GroupSendMsgGroupNum"`
	GroupSendMsgUserNum  string `json:"GroupSendMsgUserNum"`
	GroupUpMsgNum        string `json:"GroupUpMsgNum"`
	LoginTimes           string `json:"LoginTimes"`
	LoginUserNum         string `json:"LoginUserNum"`
	MaxOnlineNum         string `json:"MaxOnlineNum"`
	RegistUserNumOneDay  string `json:"RegistUserNumOneDay"`
	RegistUserNumTotal   string `json:"RegistUserNumTotal"`
	SendMsgUserNum       string `json:"SendMsgUserNum"`
	UpMsgNum             string `json:"UpMsgNum"`
}

type InfoItem

type InfoItem struct {
	ToAccount      string     `json:"To_Account"`
	SnsProfileItem []TagValue `json:"SnsProfileItem"`
	ResultCode     int        `json:"ResultCode"`
	ResultInfo     string     `json:"ResultInfo"`
}

To_Account String 好友的 UserID SnsProfileItem Array 保存好友数据的数组,数组每一个元素都包含一个 Tag 字段和一个 Value 字段 Tag String 字段的名称

type JoinGroupList

type JoinGroupList struct {
	MemberAccount  string          `json:"Member_Account"`
	Limit          int             `json:"Limit,omitempty"`
	Offset         int             `json:"Offset,omitempty"`
	GroupType      string          `json:"GroupType,omitempty"`
	ResponseFilter *ResponseFilter `json:"ResponseFilter,omitempty"`
}

Member_Account String 必填 需要查询的用户帐号 WithHugeGroups Integer 选填 是否获取用户加入的音视频聊天室和在线成员广播大群,0表示不获取,1表示获取。默认为0 WithNoActiveGroups Integer 选填 是否获取用户加入的未激活私有群信息,0表示不获取,1表示获取。默认为0 Limit Integer 选填 单次拉取的群组数量,如果不填代表所有群组,分页方式与 获取 App 中的所有群组 相同 Offset Integer 选填 从第多少个群组开始拉取,分页方式与 获取 App 中的所有群组 相同 GroupType String 选填 拉取哪种群组形态,例如 Private,Public,ChatRoom 或 AVChatRoom,不填为拉取所有

type LocationContent added in v1.0.10

type LocationContent struct {
	Latitude  float64 `json:"Latitude,omitempty"`
	Longitude float64 `json:"Longitude,omitempty"`
}

定位消息

type MemberList

type MemberList struct {
	MemberAccount        string           `json:"Member_Account"`            // 群成员 ID	只读
	Role                 string           `json:"Role,omitempty"`            // 群内身份	群内身份,包括 Owner 群主、Admin 群管理员以及 Member 群成员
	JoinTime             int64            `json:"JoinTime,omitempty"`        // 入群时间	只读
	MsgSeq               int              `json:"MsgSeq,omitempty"`          // 该成员当前已读消息 Seq	只读
	MsgFlag              string           `json:"MsgFlag,omitempty"`         // 消息接收选项	消息接收选项,包括如下几种: AcceptAndNotify 表示接收并提示 AcceptNotNotify 表示接收不提示(不会触发 APNs 远程推送) Discard 表示屏蔽群消息(不会向客户端推送消息)
	LastSendMsgTime      int              `json:"LastSendMsgTime,omitempty"` // 最后发送消息的时间	支持三个普通群,不支持直播群
	NameCard             string           `json:"NameCard,omitempty"`        // 群名片	可读可写
	ShutUpUntil          int              `json:"ShutUpUntil,omitempty"`
	AppMemberDefinedData []AppDefinedData `json:"AppMemberDefinedData,omitempty"`
	Result               int              `json:"Result,omitempty"`
	UnreadMsgNum         int              `json:"UnreadMsgNum,omitempty" `
}

type MemberListItem added in v1.0.16

type MemberListItem struct {
	MemberAccount string `json:"Member_Account"`
}

type ModifyGroup

type ModifyGroup struct {
	GroupID         string           `json:"GroupId"`
	Name            string           `json:"Name"`
	Introduction    string           `json:"Introduction,omitempty"`
	Notification    string           `json:"Notification,omitempty"`
	FaceURL         string           `json:"FaceUrl,omitempty"`
	MaxMemberNum    int              `json:"MaxMemberNum,omitempty"`
	ApplyJoinOption ApplyJoinOption  `json:"ApplyJoinOption,omitempty"`
	ShutUpAllMember string           `json:"ShutUpAllMember,omitempty"`
	AppDefinedData  []AppDefinedData `json:"AppDefinedData,omitempty"`
}

type ModifyGroupMemberInfo

type ModifyGroupMemberInfo struct {
	GroupID              string           `json:"GroupId"`
	MemberAccount        string           `json:"Member_Account"`
	ShutUpTime           int              `json:"ShutUpTime"`
	Role                 string           `json:"Role"`
	NameCard             string           `json:"NameCard"`
	MsgFlag              string           `json:"MsgFlag"`
	AppMemberDefinedData []AppDefinedData `json:"AppMemberDefinedData,omitempty"`
}

GroupId String 必填 操作的群 ID Member_Account String 必填 要操作的群成员 Role String 选填 成员身份,Admin/Member 分别为设置/取消管理员 MsgFlag String 选填 消息屏蔽类型 NameCard String 选填 群名片(最大不超过50个字节) AppMemberDefinedData Array 选填 群成员维度的自定义字段,默认情况是没有的,需要开通,详情请参阅 群组系统 ShutUpTime Integer 选填 需禁言时间,单位为秒,0表示取消禁言

type Msg

type Msg struct {
	URL        string `json:"URL"`
	ExpireTime string `json:"ExpireTime"`
	FileSize   int    `json:"FileSize"`
	FileMD5    string `json:"FileMD5"`
	GzipSize   int    `json:"GzipSize"`
	GzipMD5    string `json:"GzipMD5"`
}

URL String 消息记录文件下载地址 ExpireTime String 下载地址过期时间,请在过期前进行下载,若地址失效,请通过该接口重新获取 FileSize Integer GZip 压缩前的文件大小(单位 Byte) FileMD5 String GZip 压缩前的文件 MD5 GzipSize Integer GZip 压缩后的文件大小(单位 Byte) GzipMD5 String GZip 压缩后的文件 MD5

type MsgBody

type MsgBody struct {
	MsgContent MsgContent `json:"MsgContent"`
	MsgType    string     `json:"MsgType"`
}

func NewCustomElem

func NewCustomElem(data, desc, ext, sound string) MsgBody

自定义消息元素 Data String 自定义消息数据。 不作为 APNs 的 payload 字段下发,故从 payload 中无法获取 Data 字段。 Desc String 自定义消息描述信息。当接收方为 iOS 或 Android 后台在线时,做离线推送文本展示。 若发送自定义消息的同时设置了 OfflinePushInfo.Desc 字段,此字段会被覆盖,请优先填 OfflinePushInfo.Desc 字段。 当消息中只有一个 CustomElem 自定义消息元素时,如果 Desc 字段和 OfflinePushInfo.Desc 字段都不填写,将收不到该条消息的离线推送,需要填写 OfflinePushInfo.Desc 字段才能收到该消息的离线推送。 Ext String 扩展字段。当接收方为 iOS 系统且应用处在后台时,此字段作为 APNs 请求包 Payloads 中的 Ext 键值下发,Ext 的协议格式由业务方确定,APNs 只做透传。 Sound String 自定义 APNs 推送铃音。

func NewFaceElem

func NewFaceElem(index int, data string) MsgBody

自定义消息元素 Index Number 表情索引,用户自定义。 Data String 额外数据。

func NewFileElem added in v1.0.10

func NewFileElem(file FileContent) MsgBody

文件消息

func NewImageElem added in v1.0.10

func NewImageElem(images MsgImageContent) MsgBody

图片消息

func NewLocationElem

func NewLocationElem(desc string, latitude, longitude float64) MsgBody

地理位置消息元素 Desc String 地理位置描述信息。 Latitude Number 纬度。 Longitude Number 经度。

func NewSoundElem added in v1.0.10

func NewSoundElem(sound SoundContent) MsgBody

声音消息

func NewTextElem

func NewTextElem(text string) MsgBody

文本消息元素 Text String 消息内容。当接收方为 iOS 或 Android 后台在线时,作为离线推送的文本展示。

func NewVideoElem added in v1.0.10

func NewVideoElem(video VideoContent) MsgBody

视频消息

type MsgContent

type MsgContent struct {
	// 自定义消息 Data + Desc + Ext + Sound
	CustomContent
	// 表情消息 Index + Data
	FaceContent
	// 定位消息
	LocationContent
	// 声音消息 Size + Second + DownloadFlag
	SoundContent
	// 文本消息
	TextContent
	// 图片消息
	MsgImageContent
	// 文件消息
	FileContent
	// 视频消息
	VideoContent
	// 公共字段
	Data         string `json:"Data,omitempty"`
	Desc         string `json:"Desc,omitempty"`
	Size         int    `json:"Size,omitempty"`
	DownloadFlag int    `json:"Download_Flag,omitempty"`
}

消息内容体嵌套

type MsgImageContent added in v1.0.10

type MsgImageContent struct {
	UUID           string          `json:"UUID,omitempty"`           // 图片序列号。后台用于索引图片的键值。
	ImageFormat    uint64          `json:"ImageFormat,omitempty"`    // 图片格式。JPG = 1,GIF = 2,PNG = 3,BMP = 4,其他 = 255。
	ImageInfoArray []ImageInfoItem `json:"ImageInfoArray,omitempty"` //	原图、缩略图或者大图下载信息。
}

图片消息

type MsgItem added in v1.0.1

type MsgItem struct {
	MsgType    string      `json:"MsgType"`
	MsgContent interface{} `json:"MsgContent"` // TIMTextElem(文本消息) TIMLocationElem(位置消息) TIMFaceElem(表情消息) TIMCustomElem(自定义消息) TIMSoundElem(语音消息) TIMImageElem(图像消息) TIMFileElem(文件消息)
}

消息体

type MsgList

type MsgList struct {
	FromAccount string    `json:"From_Account"`
	SendTime    int64     `json:"SendTime"`
	Random      int       `json:"Random,omitempty"`
	MsgBody     []MsgBody `json:"MsgBody"`
}

type MsgSeqList

type MsgSeqList struct {
	MsgSeq int `json:"MsgSeq"`
}

type MsgWithdraw

type MsgWithdraw struct {
	FromAccount string `json:"From_Account"`
	ToAccount   string `json:"To_Account"`
	MsgKey      string `json:"MsgKey"`
}

type OfflinePushInfo

type OfflinePushInfo struct {
	PushFlag    int          `json:"PushFlag"`
	Desc        string       `json:"Desc"`
	Ext         string       `json:"Ext"`
	AndroidInfo *AndroidInfo `json:"AndroidInfo,omitempty"`
	ApnsInfo    *ApnsInfo    `json:"ApnsInfo,omitempty"`
}

https://cloud.tencent.com/document/product/269/2720#.E7.A6.BB.E7.BA.BF.E6.8E.A8.E9.80.81-offlinepushinfo-.E8.AF.B4.E6.98.8E PushFlag Integer 选填 0表示推送,1表示不离线推送。 Title String 选填 离线推送标题。该字段为 iOS 和 Android 共用。 Desc String 选填 离线推送内容。该字段会覆盖上面各种消息元素 TIMMsgElement 的离线推送展示文本。 若发送的消息只有一个 CustomElem 自定义消息元素,该 Desc 字段会覆盖 CustomElem 中的 Desc 字段。如果两个 Desc 字段都不填,将收不到该自定义消息的离线推送。 Ext String 选填 离线推送透传内容。 AndroidInfo.Sound String 选填 Android 离线推送声音文件路径。 AndroidInfo.OPPOChannelID String 选填 OPPO 手机 Android 8.0 以上的 NotificationChannel 通知适配字段。 ApnsInfo.BadgeMode Integer 选填 这个字段缺省或者为0表示需要计数,为1表示本条消息不需要计数,即右上角图标数字不增加。 ApnsInfo.Title String 选填 该字段用于标识 APNs 推送的标题,若填写则会覆盖最上层 Title。 ApnsInfo.SubTitle String 选填 该字段用于标识 APNs 推送的子标题。 ApnsInfo.Image String 选填 该字段用于标识 APNs 携带的图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上。

type OfflinePushInfoObj added in v1.0.1

type OfflinePushInfoObj struct {
	PushFlag    int          `json:"PushFlag"`
	Desc        string       `json:"Desc"`
	Ext         string       `json:"Ext"`
	AndroidInfo *AndroidInfo `json:"AndroidInfo,omitempty"`
	ApnsInfo    *ApnsInfo    `json:"ApnsInfo,omitempty"`
}

离线相关配置

type PortraitReq

type PortraitReq struct {
	ToAccount []string      `json:"To_Account"`
	TagList   []PortraitTag `json:"TagList"`
}

https://cloud.tencent.com/document/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5 To_Account Array 必填 需要拉取这些 UserID 的资料; 注意:每次拉取的用户数不得超过100,避免因回包数据量太大以致回包失败 TagList Array 必填 指定要拉取的资料字段的 Tag,支持的字段有: 1. 标配资料字段,详情可参见 标配资料字段 2. 自定义资料字段,详情可参见 自定义资料字段

type PortraitResp

type PortraitResp struct {
	UserProfileItem []UserProfileItem `json:"UserProfileItem"`
	FailAccount     []string          `json:"Fail_Account"`
	ActionStatus    string            `json:"ActionStatus"`
	ErrorCode       int               `json:"ErrorCode"`
	ErrorInfo       string            `json:"ErrorInfo"`
	ErrorDisplay    string            `json:"ErrorDisplay"`
}

type PortraitSet

type PortraitSet struct {
	FromAccount string        `json:"From_Account"`
	ProfileItem []ProfileItem `json:"ProfileItem"`
}

type PortraitTag

type PortraitTag string
const (
	// 昵称	长度不得超过500个字节
	ProfileIMNick PortraitTag = "Tag_Profile_IM_Nick"
	//Gender_Type_Unknown:没设置性别 Gender_Type_Female:女性 Gender_Type_Male:男性
	ProfileIMGender PortraitTag = "Tag_Profile_IM_Gender"
	//生日
	ProfileIMBirthDay PortraitTag = "Tag_Profile_IM_BirthDay"
	// 所在地
	//长度不得超过16个字节,推荐用法如下:
	//App 本地定义一套数字到地名的映射关系
	//后台实际保存的是4个 uint32_t 类型的数字
	//其中第一个 uint32_t 表示国家
	//第二个 uint32_t 用于表示省份
	//第三个 uint32_t 用于表示城市
	//第四个 uint32_t 用于表示区县
	ProfileIMLocation PortraitTag = "Tag_Profile_IM_Location"
	//加好友验证方式	有	AllowType_Type_NeedConfirm:需要经过自己确认才能添加自己为好友
	//AllowType_Type_AllowAny:允许任何人添加自己为好友
	//AllowType_Type_DenyAny:不允许任何人添加自己为好友
	ProfileIMAllowType PortraitTag = "Tag_Profile_IM_AllowType"
	//个性签名 长度不得超过500个字节
	ProfileIMSelfSignature PortraitTag = "Tag_Profile_IM_SelfSignature"
	//语言
	ProfileIMLanguage PortraitTag = "Tag_Profile_IM_Language"
	//Tag_Profile_IM_Image	string	头像URL	有	长度不得超过500个字节
	ProfileIMImage PortraitTag = "Tag_Profile_IM_Image"
	//	消息设置	有	标志位:
	//Bit0:置0表示接收消息,置1则不接收消息
	ProfileIMMsgSettings = "Tag_Profile_IM_MsgSettings"
	//管理员禁止加好友标识	AdminForbid_Type_None:默认值,允许加好友
	//AdminForbid_Type_SendOut:禁止该用户发起加好友请求
	ProfileIMAdminForbidType PortraitTag = "Tag_Profile_IM_AdminForbidType"
	//等级	uint32	等级	有	通常一个 UINT-8 数据即可保存一个等级信息
	//您可以考虑拆分保存,从而实现多种角色的等级信息
	ProfileIMLevel PortraitTag = "Tag_Profile_IM_Level"
	//角色 通常一个 UINT-8 数据即可保存一个角色信息
	//您可以考虑拆分保存,从而保存多种角色信息
	ProfileIMRole       PortraitTag = "Tag_Profile_IM_Role"
	ProfileIMCustomTest PortraitTag = "Tag_Profile_Custom_Test"
)

type ProfileItem

type ProfileItem struct {
	Tag   PortraitTag `json:"Tag"`
	Value string      `json:"Value"`
}

type ProfileTag

type ProfileTag string

type PushMsg added in v1.0.1

type PushMsg struct {
	FromAccount     string              `json:"From_Account"`
	MsgRandom       int                 `json:"MsgRandom"`
	MsgBody         []MsgItem           `json:"MsgBody"`
	OfflinePushInfo *OfflinePushInfoObj `json:"OfflinePushInfo"`
	Condition       *Condition          `json:"Condition,omitempty"`
}

全员推送

func CreatePushMsg added in v1.0.1

func CreatePushMsg(msgType string, data interface{}) PushMsg

创建推送消息

type PushResp added in v1.0.1

type PushResp struct {
	ActionStatus string `json:"ActionStatus"`
	ErrorInfo    string `json:"ErrorInfo"`
	ErrorCode    int    `json:"ErrorCode"`
	TaskID       string `json:"TaskId"`
}

请求结果

type RecallRetList

type RecallRetList struct {
	MsgSeq  int `json:"MsgSeq"`
	RetCode int `json:"RetCode"`
}

type Relation

type Relation string
const (
	//单向模式下:From_Account 的好友表中没有 To_Account,但无法确定 To_Account 的好友表中是否有 From_Account
	//双向模式下:From_Account 的好友表中没有 To_Account,To_Account 的好友表中也没有 From_Account
	FriendNoRelation Relation = "CheckResult_Type_NoRelation"
	//From_Account 单向模式下:的好友表中有 To_Account,但无法确定 To_Account 的好友表中是否有 From_Account
	//From_Account 双向模式下:的好友表中有 To_Account,但 To_Account 的好友表中没有 From_Account
	FriendAWithB Relation = "CheckResult_Type_AWithB"
	//From_Account 的好友表中有 To_Account,To_Account 的好友表中也有 From_Account
	FriendBothWay Relation = "CheckResult_Type_BothWay"
	//From_Account 的好友表中没有 To_Account,但 To_Account 的好友表中有 From_Account
	FriendBWithA Relation = "CheckResult_Type_BWithA"
)

type Req

type Req struct {
	SdkAppid        string `query:"SdkAppid"`
	CallbackCommand string `query:"CallbackCommand"`
	Contenttype     string `query:"contenttype"`
	ClientIP        string `query:"ClientIP"`
	OptPlatform     string `query:"OptPlatform"`
}

type Response

type Response struct {
	ActionStatus string `json:"ActionStatus"`
	ErrorInfo    string `json:"ErrorInfo"`
	ErrorCode    int    `json:"ErrorCode"`
}

type ResponseFilter

type ResponseFilter struct {
	GroupBaseInfoFilter []string `json:"GroupBaseInfoFilter"`
	SelfInfoFilter      []string `json:"SelfInfoFilter"`
}

ResponseFilter Object 选填 分别包含 GroupBaseInfoFilter 和 SelfInfoFilter 两个过滤器; GroupBaseInfoFilter 表示需要拉取哪些基础信息字段,详情请参阅 群组系统; SelfInfoFilter 表示需要拉取用户在每个群组中的哪些个人资料,详情请参阅 群组系统 https://cloud.tencent.com/document/product/269/1502

type ResultItem

type ResultItem struct {
	ResultCode    int      `json:"ResultCode"`
	ResultInfo    string   `json:"ResultInfo"`
	UserID        string   `json:"UserID"`
	AccountStatus string   `json:"AccountStatus"`
	ToAccount     string   `json:"To_Account" `
	State         string   `json:"State" `
	Detail        []Detail `json:"Detail"`
}

ActionStatus String 请求的处理结果,OK 表示处理成功,FAIL 表示失败 ErrorCode Integer 错误码,0表示成功,非0表示失败 ErrorInfo String 请求处理失败时的错误信息 ResultItem Array 单个帐号的结果对象数组 ResultCode Integer 单个帐号的错误码,0表示成功,非0表示失败 ResultInfo String 单个帐号删除失败时的错误描述信息 UserID String 请求删除的帐号的 UserID

type RoamMsg

type RoamMsg struct {
	FromAccount  string            `json:"From_Account"`
	ToAccount    string            `json:"To_Account"`
	MsgSeq       int               `json:"MsgSeq"`
	MsgRandom    int               `json:"MsgRandom"`
	MsgTimeStamp int               `json:"MsgTimeStamp"`
	MsgFlagBits  int               `json:"MsgFlagBits"`
	MsgKey       string            `json:"MsgKey"`
	MsgBody      []RoamMsgBodyItem `json:"MsgBody"`
}

type RoamMsgBodyContent added in v1.0.10

type RoamMsgBodyContent struct {
	Text string `json:"Text"`
}

type RoamMsgBodyItem added in v1.0.10

type RoamMsgBodyItem struct {
	MsgType    string              `json:"MsgType"`
	MsgContent *RoamMsgBodyContent `json:"MsgContent,omitempty"`
}

type RoamMsgReq

type RoamMsgReq struct {
	FromAccount string `json:"From_Account"`
	ToAccount   string `json:"To_Account"`
	MaxCnt      int    `json:"MaxCnt"`
	MinTime     int    `json:"MinTime"`
	MaxTime     int    `json:"MaxTime"`
	LastMsgKey  string `json:"LastMsgKey"`
}

type RoamMsgResp

type RoamMsgResp struct {
	ActionStatus string    `json:"ActionStatus"`
	ErrorInfo    string    `json:"ErrorInfo"`
	ErrorCode    int       `json:"ErrorCode"`
	Complete     int       `json:"Complete"`
	MsgCnt       int       `json:"MsgCnt"`
	LastMsgTime  int       `json:"LastMsgTime"`
	LastMsgKey   string    `json:"LastMsgKey"`
	MsgList      []RoamMsg `json:"MsgList"`
}

type RoamingMessage

type RoamingMessage struct {
	GroupID    string       `json:"GroupId"`
	IsFinished int          `json:"IsFinished"`
	RspMsgList []RspMsgList `json:"RspMsgList"`
}

GroupId String 请求中的群组 ID IsFinished Integer 是否返回了请求区间的全部消息 当消息长度太长或者区间太大(超过20)导致无法返回全部消息时,值为0 当消息长度太长或者区间太大(超过20)且所有消息都过期时,值为2 RspMsgList Array 返回的消息列表

type RspMsgList

type RspMsgList struct {
	FromAccount  string    `json:"From_Account"`
	IsPlaceMsg   int       `json:"IsPlaceMsg"`
	MsgBody      []MsgBody `json:"MsgBody"`
	MsgRandom    int       `json:"MsgRandom"`
	MsgSeq       int       `json:"MsgSeq"`
	MsgTimeStamp int       `json:"MsgTimeStamp"`
}

From_Account String 消息的发送者 IsPlaceMsg Integer 是否是空洞消息,当消息被删除或者消息过期后,MsgBody 为空,这个字段为1 MsgRandom Integer 消息随机值,用来对消息去重,有客户端发消息时填写,如果没有填,服务端会自动生成一个 MsgSeq Integer 消息 seq,用来标识唯一消息,值越小发送的越早 MsgTimeStamp Integer 消息被发送的时间戳,server 的时间 MsgBody Array 消息内容,详情请参见 消息内容 MsgBody 说明

type SelfInfo

type SelfInfo struct {
	Role         string `json:"Role"`
	MsgFlag      string `json:"MsgFlag"`
	UnreadMsgNum int    `json:"UnreadMsgNum"`
}

type ServerOption

type ServerOption interface {
	SetOption(*IMServer) error
}

type ShuttedUinList

type ShuttedUinList struct {
	MemberAccount string `json:"Member_Account"`
	ShuttedUntil  int    `json:"ShuttedUntil"`
}

type SigVersion

type SigVersion int
const (
	VerNew SigVersion = 0
	VerOld SigVersion = 1
)

type SignOption

type SignOption struct {
	// contains filtered or unexported fields
}

func NewSignOption

func NewSignOption() *SignOption

func (*SignOption) SetOption

func (o *SignOption) SetOption(s *IMServer) error

func (*SignOption) SetPrivateKey

func (o *SignOption) SetPrivateKey(privateKey string) *SignOption

func (*SignOption) SetSigVersion

func (o *SignOption) SetSigVersion(ver SigVersion) *SignOption

type SingleChatMsg

type SingleChatMsg struct {
	FromAccount string `json:"From_Account"`
	ToAccount   string `json:"To_Account"`
	ChatMsg
}

From_Account String 选填 消息发送方 UserID(用于指定发送消息方帐号) To_Account String 必填 消息接收方 UserID

type SoundContent added in v1.0.10

type SoundContent struct {
	// Size         int `json:"Size,omitempty"`
	Second int `json:"Second,omitempty"`
}

声音消息

type StateCallBack

type StateCallBack func(req Req, info StateInfo) error

type StateInfo

type StateInfo struct {
	CallbackCommand string `json:"CallbackCommand"`
	Info            struct {
		Action    string `json:"Action"`
		ToAccount string `json:"To_Account"`
		Reason    string `json:"Reason"`
	} `json:"Info,omitempty"`
}

type TagValue

type TagValue struct {
	Tag   string `json:"Tag"`
	Value string `json:"Value"`
}

type TextContent added in v1.0.10

type TextContent struct {
	Text string `json:"Text,omitempty"`
}

文本消息

type UpdateFriend

type UpdateFriend struct {
	FromAccount string       `json:"From_Account"`
	UpdateItem  []UpdateItem `json:"UpdateItem"`
}

type UpdateItem

type UpdateItem struct {
	ToAccount string     `json:"To_Account"`
	SnsItem   []TagValue `json:"SnsItem"`
}

type UserDataItem

type UserDataItem struct {
	ToAccount string     `json:"To_Account"`
	ValueItem []TagValue `json:"ValueItem"`
}

type UserDefinedDataList added in v1.0.16

type UserDefinedDataList struct {
	Key   string `json:"Key"`
	Value string `json:"Value"`
}

type UserProfileItem

type UserProfileItem struct {
	ToAccount   string        `json:"To_Account"`
	ProfileItem []ProfileItem `json:"ProfileItem,omitempty"`
	ResultCode  int           `json:"ResultCode"`
	ResultInfo  string        `json:"ResultInfo"`
}

type VideoContent added in v1.0.10

type VideoContent struct {
	VideoUrl          string `json:"VideoUrl,omitempty"`          // 视频下载地址。可通过该 URL 地址直接下载相应视频。
	VideoSize         int    `json:"VideoSize,omitempty"`         // 视频数据大小,单位:字节。
	VideoSecond       int    `json:"VideoSecond,omitempty"`       // 视频时长,单位:秒。
	VideoFormat       string `json:"VideoFormat,omitempty"`       // 视频格式,例如 mp4。
	VideoDownloadFlag int    `json:"VideoDownloadFlag,omitempty"` // 	视频下载方式标记。目前 VideoDownloadFlag 取值只能为2,表示可通过VideoUrl字段值的 URL 地址直接下载视频。
	ThumbUrl          string `json:"ThumbUrl,omitempty"`          // 视频缩略图下载地址。可通过该 URL 地址直接下载相应视频缩略图。
	ThumbSize         int    `json:"ThumbSize,omitempty"`         // 缩略图大小,单位:字节。
	ThumbWidth        int    `json:"ThumbWidth,omitempty"`        // 缩略图宽度。
	ThumbHeight       int    `json:"ThumbHeight,omitempty"`       // 缩略图高度。
	ThumbFormat       string `json:"ThumbFormat,omitempty"`       // 缩略图格式,例如 JPG、BMP 等。
	ThumbDownloadFlag int    `json:"ThumbDownloadFlag,omitempty"` //	视频缩略图下载方式标记。目前 ThumbDownloadFlag 取值只能为2,表示可通过ThumbUrl字段值的 URL 地址直接下载视频缩略图。
}

视频消息

Directories

Path Synopsis
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL