Documentation ¶
Index ¶
- Constants
- func AddCommandFuc(command string, commandFunc CommandFunc)
- func AfterCreateGroup(req Req, c echo.Context) error
- func AfterGroupDestroyed(req Req, c echo.Context) error
- func AfterGroupFull(req Req, c echo.Context) error
- func AfterGroupInfoChanged(req Req, c echo.Context) error
- func AfterMemberExit(req Req, c echo.Context) error
- func AfterNewMemberJoin(req Req, c echo.Context) error
- func AfterSendMsg(req Req, c echo.Context) error
- func BeforeApplyJoinGroup(req Req, c echo.Context) error
- func BeforeCreateGroup(req Req, c echo.Context) error
- func BeforeInviteJoinGroup(req Req, c echo.Context) error
- func BeforeSendMsg(req Req, c echo.Context) error
- func BlackListAdd(req Req, c echo.Context) error
- func BlackListDelete(req Req, c echo.Context) error
- func FriendAdd(req Req, c echo.Context) error
- func FriendDelete(req Req, c echo.Context) error
- func GafterSendMsg(req Req, c echo.Context) error
- func Run(appId string)
- func StateChange(req Req, c echo.Context) error
- type AddFriendItem
- type AddFriendType
- type AndroidInfo
- type ApnsInfo
- type AppDefinedData
- type AppHistory
- type AppInfo
- type AppInfoField
- type ApplyJoinOption
- type BatchChatMsg
- type BlackList
- type BlackListCheckType
- type BlackListResult
- type C2CCallBack
- type C2CMsg
- type CallGroup
- type CallbackFriend
- type CallbackGroup
- type ChatMsg
- type CheckResult
- type CheckType
- type CommandFunc
- type DeleteType
- type Detail
- type ErrorList
- type Friend
- type FriendAddCallBack
- type FriendResultItem
- type GetFriend
- type GetFriendResult
- type GetJoinedGroupList
- type Group
- type GroupFilter
- type GroupIDList
- type GroupId
- type GroupInfo
- type GroupList
- type GroupMemberInfo
- type GroupMemberInfoReq
- type GroupMsg
- type GroupType
- type IMPath
- type IMServer
- func (s IMServer) AccountCheck(accounts []string) ([]ResultItem, error)
- func (s IMServer) AccountImport(identifier, nick, faceUrl string) error
- func (s IMServer) AddGroupMember(groupId string, slilence int, memberList []MemberList) ([]MemberList, error)
- func (s IMServer) BATCHChatMsg(b BatchChatMsg) (msgKey string, errList []ErrorList, err error)
- func (s IMServer) BlackListAdd(fromAccount string, toAccount []string) ([]FriendResultItem, error)
- func (s IMServer) BlackListCheck(fromAccount string, toAccount []string, checkType BlackListCheckType) ([]CheckResult, error)
- func (s IMServer) BlackListDelete(fromAccount string, toAccount []string) ([]FriendResultItem, error)
- func (s IMServer) BlackListGet(b BlackList) (BlackListResult, error)
- func (s IMServer) CallbackAfterCreateGroup(commandFunc CallGroup)
- func (s IMServer) CallbackAfterGroupDestroyed(commandFunc CallGroup)
- func (s IMServer) CallbackAfterGroupInfoChanged(commandFunc CallGroup)
- func (s IMServer) CallbackAfterMemberExit(commandFunc CallGroup)
- func (s IMServer) CallbackAfterNewMemberJoin(commandFunc CallGroup)
- func (s IMServer) CallbackAfterSendMsg(commandFunc C2CCallBack)
- func (s IMServer) CallbackBeforeApplyJoinGroup(commandFunc CallGroup)
- func (s IMServer) CallbackBeforeCreateGroup(commandFunc CallGroup)
- func (s IMServer) CallbackBeforeInviteJoinGroup(commandFunc CallGroup)
- func (s IMServer) CallbackBeforeSendMsg(commandFunc C2CCallBack)
- func (s IMServer) CallbackBlackListAdd(commandFunc FriendAddCallBack)
- func (s IMServer) CallbackBlackListDelete(commandFunc FriendAddCallBack)
- func (s IMServer) CallbackFriendAdd(commandFunc FriendAddCallBack)
- func (s IMServer) CallbackFriendDelete(commandFunc FriendAddCallBack)
- func (s IMServer) CallbackGroupAfterGroupFull(commandFunc CallGroup)
- func (s IMServer) CallbackGroupAfterSendMsg(commandFunc CallGroup)
- func (s IMServer) CallbackGroupBeforeSendMsg(commandFunc CallGroup)
- func (s IMServer) CallbackStateChange(commandFunc StateCallBack)
- func (s IMServer) ChangeGroupOwner(groupId string, newOwnerAcoount string) error
- func (s IMServer) CreateGroup(g Group) (string, error)
- func (s IMServer) DeleteAccount(accounts []string) ([]ResultItem, error)
- func (s IMServer) DeleteGroupMember(groupID, reason string, silence int, memberToDelAccount []string) error
- func (s IMServer) DeleteGroupMsgBySender(groupId string, senderAccount string) error
- func (s IMServer) DestroyGroup(groupId string) error
- func (s IMServer) ForbidSendMsg(groupID string, membersAccount []string, shutUpTime int) error
- func (s IMServer) FriendAdd(f Friend) ([]FriendResultItem, error)
- func (s IMServer) FriendCheck(fromAccount string, toAccount []string, checkType CheckType) ([]CheckResult, error)
- func (s IMServer) FriendDelete(fromAccount string, toAccount []string, deleteType DeleteType) ([]FriendResultItem, error)
- func (s IMServer) FriendDeleteAll(fromAccount string, deleteType DeleteType) error
- func (s IMServer) FriendGet(f GetFriend) (GetFriendResult, error)
- func (s IMServer) FriendGetList(fromAccount string, toAccount []string, tagList []ProfileTag) ([]InfoItem, error)
- func (s IMServer) FriendImport(f ImportFriend) ([]FriendResultItem, error)
- func (s IMServer) FriendUpdate(f UpdateFriend) ([]FriendResultItem, error)
- func (s IMServer) GetAllGroup(limit, next int, groupType GroupType) (GroupList, error)
- func (s IMServer) GetAppInfo(field ...AppInfoField) ([]Info, error)
- func (s IMServer) GetGroupInfo(g GroupInfo) ([]Group, error)
- func (s IMServer) GetGroupMemberInfo(g GroupMemberInfoReq) (GroupMemberInfo, error)
- func (s IMServer) GetGroupShuttedUin(groupId string) ([]ShuttedUinList, error)
- func (s IMServer) GetHistory(chatType, msgTime string) ([]Msg, error)
- func (s IMServer) GetJoinedGroupList(j JoinGroupList) (GetJoinedGroupList, error)
- func (s IMServer) GetNoSpeaking(account string) (C2CmsgNospeakingTime int64, groupmsgNospeakingTime int64, err error)
- func (s IMServer) GetPortrait(p PortraitReq) (resp PortraitResp, err error)
- func (s IMServer) GetRoamMsg(m RoamMsgReq) (err error)
- func (s IMServer) GetRoleInGroup(groupID string, userAccount []string) ([]MemberList, error)
- func (s IMServer) GroupAdd(fromAccount string, groupName, toAccount []string) ([]FriendResultItem, error)
- func (s IMServer) GroupDelete(fromAccount string, groupName []string) error
- func (s IMServer) GroupMsgGetSimple(groupId string, reqMsgSeq int, reqMsgNumber int) (RoamingMessage, error)
- func (s IMServer) GroupMsgRecall(groupID string, msgSeqList []MsgSeqList) ([]RecallRetList, error)
- func (s IMServer) ImportGroup(g Group) (string, error)
- func (s IMServer) ImportGroupMember(groupId string, list []MemberList) ([]MemberList, error)
- func (s IMServer) ImportGroupMsg(groupId string, msgs []MsgList) ([]ImportMsgResult, error)
- func (s IMServer) ImportMsg(b SingleChatMsg) (err error)
- func (s IMServer) Kick(userId string) error
- func (s IMServer) ListenCallback()
- func (s IMServer) ModifyGroupBaseInfo(m ModifyGroup) error
- func (s IMServer) ModifyGroupMemberInfo(m ModifyGroupMemberInfo) error
- func (s IMServer) MsgWithdraw(m MsgWithdraw) error
- func (s IMServer) MultiAccountImports(account []string) ([]string, error)
- func (s IMServer) QueryState(accounts []string, isNeedDetail int) ([]ResultItem, error)
- func (s IMServer) SendGroupMsg(m GroupMsg) error
- func (s IMServer) SendGroupSystemNotification(groupID string, content string, toMembersAccount []string) error
- func (s IMServer) SendMsg(b SingleChatMsg) (msgTime int64, msgKey string, err error)
- func (s IMServer) SetNoSpeaking(account string, C2CmsgNospeakingTime, groupmsgNospeakingTime int64) error
- func (s IMServer) SetPortrait(p PortraitSet) error
- func (s IMServer) SetUnreadMsgNum(group, memberAccount string, unReadMsgNum int) error
- type ImportFriend
- type ImportFriendItem
- type ImportMsgResult
- type Info
- type InfoItem
- type JoinGroupList
- type MemberList
- type ModifyGroup
- type ModifyGroupMemberInfo
- type Msg
- type MsgBody
- type MsgContent
- type MsgList
- type MsgSeqList
- type MsgWithdraw
- type OfflinePushInfo
- type PortraitReq
- type PortraitResp
- type PortraitSet
- type PortraitTag
- type ProfileItem
- type ProfileTag
- type RecallRetList
- type Relation
- type Req
- type Response
- type ResponseFilter
- type ResultItem
- type RoamMsg
- type RoamMsgReq
- type RoamMsgResp
- type RoamingMessage
- type RspMsgList
- type SelfInfo
- type ShuttedUinList
- type SingleChatMsg
- type StateCallBack
- type StateInfo
- type TagValue
- type UpdateFriend
- type UpdateItem
- type UserDataItem
- type UserProfileItem
Constants ¶
const ( StateStateChange = "State.StateChange" SnsFriendAdd = "Sns.CallbackFriend" 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" )
const ( //TIMTextElem 文本消息。 TIMTextElem = "TIMTextElem" //TIMLocationElem 地理位置消息。 TIMLocationElem = "TIMLocationElem" //TIMFaceElem 表情消息。 TIMFaceElem = "TIMFaceElem" //TIMCustomElem 自定义消息,当接收方为 iOS 系统且应用处在后台时,此消息类型可携带除文本以外的字段到 APNs。一条组合消息中只能包含一个 TIMCustomElem 自定义消息元素 TIMCustomElem = "TIMCustomElem" )
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 ¶
This section is empty.
Functions ¶
func AddCommandFuc ¶
func AddCommandFuc(command string, commandFunc CommandFunc)
func AfterCreateGroup ¶
func AfterGroupDestroyed ¶
func AfterGroupFull ¶
func AfterGroupInfoChanged ¶
func AfterMemberExit ¶
func AfterNewMemberJoin ¶
func AfterSendMsg ¶
func BeforeApplyJoinGroup ¶
func BeforeCreateGroup ¶
func BeforeInviteJoinGroup ¶
func BeforeSendMsg ¶
func BlackListAdd ¶
func BlackListDelete ¶
func FriendDelete ¶
func GafterSendMsg ¶
func StateChange ¶
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 AndroidInfo ¶
type AndroidInfo struct {
Sound string `json:"Sound"`
}
type AppDefinedData ¶
type AppHistory ¶
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 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 C2CMsg ¶
type C2CMsg struct { CallbackCommand string `json:"CallbackCommand"` FromAccount string `json:"From_Account"` ToAccount string `json:"To_Account"` MsgSeq int `json:"MsgSeq"` MsgRandom int `json:"MsgRandom"` MsgTime int `json:"MsgTime"` MsgKey string `json:"MsgKey"` MsgBody []struct { MsgType string `json:"MsgType"` MsgContent struct { Text string `json:"Text"` } `json:"MsgContent"` } `json:"MsgBody"` }
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"` OperatorAccount string `json:"Operator_Account"` OwnerAccount string `json:"Owner_Account"` Type string `json:"Type"` Name string `json:"Name"` RequestorAccount string `json:"Requestor_Account" ` MemberList []struct { MemberAccount string `json:"Member_Account"` } `json:"MemberList"` UserDefinedDataList []struct { Key string `json:"Key"` Value string `json:"Value"` } `json:"UserDefinedDataList"` DestinationMembers []struct { MemberAccount string `json:"Member_Account"` } `json:"DestinationMembers"` JoinType string `json:"JoinType"` NewMemberList []struct { MemberAccount string `json:"Member_Account"` } `json:"NewMemberList"` ExitType string `json:"ExitType"` ExitMemberList []struct { MemberAccount string `json:"Member_Account"` } `json:"ExitMemberList"` FromAccount string `json:"From_Account"` Random int `json:"Random"` MsgBody []struct { MsgType string `json:"MsgType"` MsgContent struct { Text string `json:"Text"` } `json:"MsgContent"` } `json:"MsgBody"` MsgSeq int `json:"MsgSeq"` MsgTime int `json:"MsgTime"` Introduction string `json:"Introduction"` Notification string `json:"Notification"` FaceURL string `json:"FaceUrl"` }
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"` SyncFromOldSystem int `json:"SyncFromOldSystem" ` MsgLifeTime int `json:"MsgLifeTime"` MsgRandom int `json:"MsgRandom"` MsgTimeStamp int64 `json:"MsgTimeStamp"` MsgBody []MsgBody `json:"MsgBody"` OfflinePushInfo OfflinePushInfo `json:"OfflinePushInfo"` }
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(文本消息),TIMFaceElem(表情消息),TIMLocationElem(位置消息),TIMCustomElem(自定义消息) 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 CommandFunc ¶
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 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 GetJoinedGroupList ¶
type GetJoinedGroupList struct { TotalCount int `json:"TotalCount"` GroupIDList []GroupIDList `json:"GroupIdList"` }
type Group ¶
type Group struct { OwnerAccount string `json:"Owner_Account"` Type string `json:"Type"` GroupID string `json:"GroupId"` Name string `json:"Name"` Introduction string `json:"Introduction"` Notification string `json:"Notification"` FaceURL string `json:"FaceUrl"` MaxMemberCount int `json:"MaxMemberCount"` CreateTime int `json:"CreateTime"` ApplyJoinOption string `json:"ApplyJoinOption"` AppDefinedData []AppDefinedData `json:"AppDefinedData"` MemberList []MemberList `json:"MemberList"` ErrorCode int `json:"ErrorCode"` ErrorInfo string `json:"ErrorInfo"` }
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 GroupFilter ¶
type GroupIDList ¶
type GroupInfo ¶
type GroupInfo struct { GroupIDList []string `json:"GroupIdList"` ResponseFilter GroupFilter `json:"ResponseFilter"` }
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"` Random int `json:"Random"` FromAccount string `json:"From_Account"` MsgPriority string `json:"MsgPriority"` OnlineOnlyFlag int `json:"OnlineOnlyFlag"` ForbidCallbackControl []string `json:"ForbidCallbackControl"` MsgBody []MsgBody `json:"MsgBody"` OfflinePushInfo OfflinePushInfo `json:"OfflinePushInfo"` }
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 IMPath ¶
type IMPath string
const ( VERSION = "v4" BASE_URL = "https://console.tim.qq.com" //帐号管理 MULTIACCOUNTIMPORT IMPath = "/im_open_login_svc/multiaccount_import" //导入多个帐号 ACCOUNTIMPORT IMPath = "/im_open_login_svc/account_import" //导入单个帐号 ACCOUNTDELETE IMPath = "/im_open_login_svc/account_delete" //删除帐号 v4/im_open_login_svc/account_delete ACCOUNTCHECK IMPath = "/im_open_login_svc/account_check" //查询帐号 v4/im_open_login_svc/account_check KICK IMPath = "/im_open_login_svc/kick" //失效帐号登录态 v4/im_open_login_svc/kick //单聊消息 QUERYSTATE IMPath = "/openim/querystate" //查询帐号在线状态 v4/openim/querystate SENDMSG IMPath = "/openim/sendmsg" //单发单聊消息 v4/openim/sendmsg BATCHSENDMSG IMPath = "/openim/batchsendmsg" //批量发单聊消息 v4/openim/batchsendmsg IMPORTMSG IMPath = "/openim/importmsg" //导入单聊消息 v4/openim/importmsg ADMIN_GETROAMMSG IMPath = "/openim/admin_getroammsg" //查询单聊消息 v4/openim/admin_getroammsg ADMIN_MSGWITHDRAW IMPath = "/openim/admin_msgwithdraw" //撤回单聊消息 //资料管理 PORTRAIT_GET IMPath = "/profile/portrait_get" //拉取资料 v4/profile/portrait_get PORTRAIT_SET IMPath = "/profile/portrait_set" //设置资料 v4/profile/portrait_set //关系链管理 FRIEND_ADD IMPath = "/sns/friend_add" //添加好友 v4/sns/friend_add FRIEND_IMPORT IMPath = "/sns/friend_import" //导入好友 v4/sns/friend_import FRIEND_DELETE IMPath = "/sns/friend_delete" //删除好友 v4/sns/friend_delete FRIEND_UPDATE IMPath = "/sns/friend_update" //更新好友 FRIEND_DELETE_ALL IMPath = "/sns/friend_delete_all" //删除所有好友 v4/sns/friend_delete_all FRIEND_CHECK IMPath = "/sns/friend_check" //校验好友 v4/sns/friend_check FRIEND_GET IMPath = "/sns/friend_get" //拉取好友 v4/sns/friend_get FRIEND_GET_LIST IMPath = "/sns/friend_get_list" //拉取指定好友 v4/sns/friend_get_list BLACK_LIST_ADD IMPath = "/sns/black_list_add" //添加黑名单 v4/sns/black_list_add BLACK_LIST_DELETE IMPath = "/sns/black_list_delete" //删除黑名单 v4/sns/black_list_delete BLACK_LIST_GET IMPath = "/sns/black_list_get" //拉取黑名单 v4/sns/black_list_get BLACK_LIST_CHECK IMPath = "/sns/black_list_check" //校验黑名单 v4/sns/black_list_check GROUP_ADD IMPath = "/sns/group_add" //添加分组 v4/sns/group_add GROUP_DELETE IMPath = "/sns/group_delete" //删除分组 v4/sns/group_delete //获取 App 中的所有群组 v4/group_open_http_svc/get_appid_group_list GET_APPID_GROUP_LIST IMPath = "/group_open_http_svc/get_appid_group_list" CREATE_GROUP IMPath = "/group_open_http_svc/create_group" //创建群组 v4/group_open_http_svc/create_group GET_GROUP_INFO IMPath = "/group_open_http_svc/get_group_info" //获取群组详细资料 v4/group_open_http_svc/get_group_info GET_GROUP_MEMBER_INFO IMPath = "/group_open_http_svc/get_group_member_info" //获取群成员详细资料 v4/group_open_http_svc/get_group_member_info MODIFY_GROUP_BASE_INFO IMPath = "/group_open_http_svc/modify_group_base_info" //修改群组基础资料 v4/group_open_http_svc/modify_group_base_info ADD_GROUP_MEMBER IMPath = "/group_open_http_svc/add_group_member" //增加群组成员 v4/group_open_http_svc/add_group_member DELETE_GROUP_MEMBER IMPath = "/group_open_http_svc/delete_group_member" //删除群组成员 v4/group_open_http_svc/delete_group_member MODIFY_GROUP_MEMBER_INFO IMPath = "/group_open_http_svc/modify_group_member_info" //修改群组成员资料 v4/group_open_http_svc/modify_group_member_info DESTROY_GROUP IMPath = "/group_open_http_svc/destroy_group" //解散群组 v4/group_open_http_svc/destroy_group GET_JOINED_GROUP_LIST IMPath = "/group_open_http_svc/get_joined_group_list" //获取用户所加入的群组 v4/group_open_http_svc/get_joined_group_list GET_ROLE_IN_GROUP IMPath = "/group_open_http_svc/get_role_in_group" //查询用户在群组中的身份 v4/group_open_http_svc/get_role_in_group FORBID_SEND_MSG IMPath = "/group_open_http_svc/forbid_send_msg" //批量禁言和取消禁言 v4/group_open_http_svc/forbid_send_msg GET_GROUP_SHUTTED_UIN IMPath = "/group_open_http_svc/get_group_shutted_uin" //获取群组被禁言用户列表 v4/group_open_http_svc/get_group_shutted_uin SEND_GROUP_MSG IMPath = "/group_open_http_svc/send_group_msg" //在群组中发送普通消息 v4/group_open_http_svc/send_group_msg SEND_GROUP_SYSTEM_NOTIFICATION IMPath = "/group_open_http_svc/send_group_system_notification" //在群组中发送系统通知 v4/group_open_http_svc/send_group_system_notification GROUP_MSG_RECALL IMPath = "/group_open_http_svc/group_msg_recall" //群组消息撤回 v4/group_open_http_svc/group_msg_recall CHANGE_GROUP_OWNER IMPath = "/group_open_http_svc/change_group_owner" //转让群组 v4/group_open_http_svc/change_group_owner IMPORT_GROUP IMPath = "/group_open_http_svc/import_group" //导入群基础资料 v4/group_open_http_svc/import_group IMPORT_GROUP_MSG IMPath = "/group_open_http_svc/import_group_msg" //导入群消息 v4/group_open_http_svc/import_group_msg IMPORT_GROUP_MEMBER IMPath = "/group_open_http_svc/import_group_member" //导入群成员 v4/group_open_http_svc/import_group_member SET_UNREAD_MSG_NUM IMPath = "/group_open_http_svc/set_unread_msg_num" //设置成员未读消息计数 v4/group_open_http_svc/set_unread_msg_num DELETE_GROUP_MSG_BY_SENDER IMPath = "/group_open_http_svc/delete_group_msg_by_sender" //删除指定用户发送的消息 v4/group_open_http_svc/delete_group_msg_by_sender GROUP_MSG_GET_SIMPLE IMPath = "/group_open_http_svc/group_msg_get_simple" //拉取群漫游消息 v4/group_open_http_svc/group_msg_get_simple //全局禁言管理 SETNOSPEAKING IMPath = "/openconfigsvr/setnospeaking" //设置全局禁言 v4/openconfigsvr/setnospeaking GETNOSPEAKING IMPath = "/openconfigsvr/getnospeaking" //查询全局禁言 v4/openconfigsvr/getnospeaking //运营管理 GET_HISTORY IMPath = "/open_msg_svc/get_history" //下载消息记录 v4/open_msg_svc/get_history GETAPPINFO IMPath = "/openconfigsvr/getappinfo" //拉取运营数据 v4/openconfigsvr/getappinfo )
type IMServer ¶
func NewIMServer ¶
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 ¶
导入单个帐号 本接口适用于将 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 ¶
创建群组之后回调 功能说明 App 后台可以通过该回调实时监控用户创建群组的信息,包括: 通知 App 后台有群组创建成功,App 后台可以据此进行数据同步等操作。 可能触发该回调的场景 App 用户通过客户端创建群组成功 App 管理员通过 REST API 创建群组成功
func (IMServer) CallbackAfterGroupDestroyed ¶
群组解散之后回调 功能说明 App 后台可以通过该回调实时监控群组的解散动态,包括:对群组的解散实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 App 用户通过客户端解散群组。 App 管理员通过 REST API 解散群组。
func (IMServer) CallbackAfterGroupInfoChanged ¶
群组资料修改之后回调 功能说明 App 后台可以通过该回调实时监控群组资料(群名称、群简介、群公告、群头像及群维度自定义字段)的变更,包括对修改群组资料的实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 哪些内容会触发回调 群组资料包括 群基础资料 和 群组维度自定义字段。 目前,群基础资料中的群组名称、群组简介、群组公告和群组头像 URL 被修改后,可能触发该回调。其他群基础资料被修改后暂不会触发。 哪些方式会触发回调 App 用户通过客户端修改群组资料。 App 管理员通过 REST API 修改群组资料
func (IMServer) CallbackAfterMemberExit ¶
群成员离开之后回调 功能说明 App 后台可以通过该回调实时监控用户的退群动态,包括:对用户退群进行实时记录(例如记录日志,或者同步到其他系统)。 可能触发该回调的场景 App 用户通过客户端退群。 App 用户通过客户端踢人。 App 管理员通过 REST API 删除群成员
func (IMServer) CallbackAfterNewMemberJoin ¶
新成员入群之后回调 功能说明 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 ¶
申请入群之前回调 功能说明 App 后台可以通过该回调实时监控用户申请加群的请求,包括:App 后台可以拦截用户申请加群的操作。 可能触发该回调的场景 App 用户通过客户端发起加群申请
func (IMServer) CallbackBeforeCreateGroup ¶
创建群组之前回调 功能说明 App 后台可以通过该回调实时监控用户创建群组的请求,包括后台可以拒绝用户创建群组的请求。 可能触发该回调的场景 App 用户通过客户端创建群组 App 管理员通过 REST API 创建群组
func (IMServer) CallbackBeforeInviteJoinGroup ¶
拉人入群之前回调 功能说明 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 ¶
群组满员之后回调 功能说明 App 后台可以通过该回调实时监控群组满员的动态,包括:删除一部分不活跃的群成员,以确保用户能够加入该群。 可能触发该回调的场景 App 用户通过客户端申请加群。 App 用户通过客户端邀请加群。 App 管理员通过 REST API 增加群组成员。
func (IMServer) CallbackGroupAfterSendMsg ¶
群内发言之后回调 功能说明 App 后台可以通过该回调实时监控用户的群发消息,包括:通知 App 后台有群组消息发送成功,App 可以据此进行必要的数据同步。 可能触发该回调的场景 App 用户通过客户端发送群消息。 App 管理员通过 REST API 发送群组消息。
func (IMServer) CallbackGroupBeforeSendMsg ¶
群内发言之前回调 功能说明 App 后台可以通过该回调实时监控用户的群发消息,包括: 对群消息进行实时记录(例如记录日志,或者同步到其他系统)。 拦截用户在群内发言的请求。 修改用户发言内容(例如敏感词过滤,或者增加一些 App 自定义信息) 可能触发该回调的场景 App 用户通过客户端发送群消息。 App 管理员通过 REST API 发送群组消息。
func (IMServer) CallbackStateChange ¶
func (s IMServer) CallbackStateChange(commandFunc StateCallBack)
func (IMServer) ChangeGroupOwner ¶
https://cloud.tencent.com/document/product/269/1633 转让群主 App 管理员可以通过该接口将群主转移给他人。 没有群主的群也可以转让,新群主不能为空。 GroupId 必填 要被转移的群组 ID NewOwner_Account 必填 新群主 ID
func (IMServer) CreateGroup ¶
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 ¶
https://cloud.tencent.com/document/product/269/2359 删除指定用户发送的消息 该 API 接口的作用是删除最近1000条消息中指定用户发送的消息。 GroupId 必填 要删除消息的群 ID Sender_Account 必填 被删除消息的发送者 ID
func (IMServer) DestroyGroup ¶
https://cloud.tencent.com/document/product/269/1624 解散群组 App 管理员通过该接口解散群。 GroupId String 必填 操作的群 ID
func (IMServer) ForbidSendMsg ¶
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 ¶
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 ¶
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 ¶
下载消息记录 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 ¶
删除分组 删除指定分组。 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 ¶
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 ¶
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 ¶
本接口单次最多支持导入100个帐号,同一个帐号重复导入仅会创建1个内部 ID。 Accounts Array 必填 用户名,单个用户名长度不超过32字节,单次最多导入100个用户名 FailAccounts Array 导入失败的帐号列表
func (IMServer) QueryState ¶
func (s IMServer) QueryState(accounts []string, isNeedDetail int) ([]ResultItem, error)
https://cloud.tencent.com/document/product/269/2566 查询帐号在线状态 获取用户当前的登录状态
func (IMServer) SendGroupMsg ¶
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 ¶
https://cloud.tencent.com/document/product/269/1637 设置成员未读消息计数 App 管理员使用该接口设置群组成员未读消息数,不会触发回调、不会下发通知。 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议设置群成员的未读消息计数 GroupId 必填 操作的群 ID Member_Account 必填 要操作的群成员 UnreadMsgNum 必填 成员未读消息数
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 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"` Offset int `json:"Offset"` GroupType string `json:"GroupType"` ResponseFilter ResponseFilter `json:"ResponseFilter"` }
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 MemberList ¶
type MemberList struct { MemberAccount string `json:"Member_Account"` Role string `json:"Role"` JoinTime int64 `json:"JoinTime"` MsgSeq int `json:"MsgSeq"` MsgFlag string `json:"MsgFlag"` LastSendMsgTime int `json:"LastSendMsgTime"` ShutUpUntil int `json:"ShutUpUntil"` AppMemberDefinedData []AppDefinedData `json:"AppMemberDefinedData"` Result int `json:"Result"` UnreadMsgNum int `json:"UnreadMsgNum" ` }
type ModifyGroup ¶
type ModifyGroup struct { GroupID string `json:"GroupId"` Name string `json:"Name"` Introduction string `json:"Introduction"` Notification string `json:"Notification"` FaceURL string `json:"FaceUrl"` MaxMemberNum int `json:"MaxMemberNum"` ApplyJoinOption ApplyJoinOption `json:"ApplyJoinOption"` ShutUpAllMember string `json:"ShutUpAllMember"` AppDefinedData []AppDefinedData `json:"AppDefinedData"` }
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"` }
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 ¶
自定义消息元素 Data String 自定义消息数据。 不作为 APNs 的 payload 字段下发,故从 payload 中无法获取 Data 字段。 Desc String 自定义消息描述信息。当接收方为 iOS 或 Android 后台在线时,做离线推送文本展示。 若发送自定义消息的同时设置了 OfflinePushInfo.Desc 字段,此字段会被覆盖,请优先填 OfflinePushInfo.Desc 字段。 当消息中只有一个 TIMCustomElem 自定义消息元素时,如果 Desc 字段和 OfflinePushInfo.Desc 字段都不填写,将收不到该条消息的离线推送,需要填写 OfflinePushInfo.Desc 字段才能收到该消息的离线推送。 Ext String 扩展字段。当接收方为 iOS 系统且应用处在后台时,此字段作为 APNs 请求包 Payloads 中的 Ext 键值下发,Ext 的协议格式由业务方确定,APNs 只做透传。 Sound String 自定义 APNs 推送铃音。
func NewFaceElem ¶
自定义消息元素 Index Number 表情索引,用户自定义。 Data String 额外数据。
func NewLocationElem ¶
地理位置消息元素 Desc String 地理位置描述信息。 Latitude Number 纬度。 Longitude Number 经度。
func NewTextElem ¶
文本消息元素 Text String 消息内容。当接收方为 iOS 或 Android 后台在线时,作为离线推送的文本展示。
type MsgContent ¶
type MsgSeqList ¶
type MsgSeqList struct {
MsgSeq int `json:"MsgSeq"`
}
type MsgWithdraw ¶
type OfflinePushInfo ¶
type OfflinePushInfo struct { PushFlag int `json:"PushFlag"` Desc string `json:"Desc"` Ext string `json:"Ext"` AndroidInfo AndroidInfo `json:"AndroidInfo"` ApnsInfo ApnsInfo `json:"ApnsInfo"` }
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 的离线推送展示文本。 若发送的消息只有一个 TIMCustomElem 自定义消息元素,该 Desc 字段会覆盖 TIMCustomElem 中的 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 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 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 RecallRetList ¶
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 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 []struct { MsgType string `json:"MsgType"` MsgContent struct { Text string `json:"Text"` } `json:"MsgContent"` } `json:"MsgBody"` }
type RoamMsgReq ¶
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 ShuttedUinList ¶
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 StateCallBack ¶
type UpdateFriend ¶
type UpdateFriend struct { FromAccount string `json:"From_Account"` UpdateItem []UpdateItem `json:"UpdateItem"` }
type UpdateItem ¶
type UserDataItem ¶
type UserProfileItem ¶
type UserProfileItem struct { ToAccount string `json:"To_Account"` ProfileItem []ProfileItem `json:"ProfileItem,omitempty"` ResultCode int `json:"ResultCode"` ResultInfo string `json:"ResultInfo"` }