repositorypackage
0.1.23
Repository: https://github.com/inkrtech/tencent-im.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
腾讯云IM官方API文档
点击查看 官方文档
如何使用
go get github.com/inkrtech/tencent-im
调用方法
package main
import (
"fmt"
"github.com/inkrtech/tencent-im"
"github.com/inkrtech/tencent-im/account"
)
func main() {
tim := im.NewIM(&im.Options{
AppId: 1400579830, // 无效的AppId,请勿直接使用
AppSecret: "0d2a321b087fdb8fd5ed5ea14fe0489139086eb1b03541283fc9feeab8f2bfd3", // 无效的AppSecret,请勿直接使用
UserId: "administrator", // 管理员用户账号,请在腾讯云IM后台设置管理账号
})
// 导入账号
if err := tim.Account().ImportAccount(&account.Account{
UserId: "test1",
Nickname: "测试账号1",
FaceUrl: "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",
}); err != nil {
if e, ok := err.(im.Error); ok {
fmt.Println(fmt.Sprintf("import accout failed, code:%d, message:%s.", e.Code(), e.Message()))
} else {
fmt.Println(fmt.Sprintf("import accout failed:%s.", err.Error()))
}
}
fmt.Println("import account success.")
// 注册回调事件
tim.Callback().Register(callback.EventAfterFriendAdd, func(ack callback.Ack, data interface{}) {
fmt.Printf("%+v", data.(callback.AfterFriendAdd))
_ = ack.AckSuccess(0)
})
// 注册回调事件
tim.Callback().Register(callback.EventAfterFriendDelete, func(ack callback.Ack, data interface{}) {
fmt.Printf("%+v", data.(callback.AfterFriendDelete))
_ = ack.AckSuccess(0)
})
// 开启监听
http.HandleFunc("/callback", func(writer http.ResponseWriter, request *http.Request) {
tim.Callback().Listen(writer, request)
})
// 启动服务器
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
SDK列表
模块 | 名称 | 方法 | 说明 | master |
账号管理 | 导入单个帐号 | Account.ImportAccount | 本接口用于将 App 自有帐号导入即时通信 IM 帐号系统,为该帐号创建一个对应的内部 ID,使该帐号能够使用即时通信 IM 服务。 | √ |
导入多个帐号 | Account.ImportAccounts | 本接口用于批量将 App 自有帐号导入即时通信 IM 帐号系统,为该帐号创建一个对应的内部 ID,使该帐号能够使用即时通信 IM 服务。 | √ | |
删除单个帐号 | Account.DeleteAccount |
| √ | |
删除多个帐号 | Account.DeleteAccounts | 仅支持删除套餐包类型为 IM 体验版的帐号,其他类型的账号(如:TRTC、白板、专业版、旗舰版)无法删除。 | √ | |
查询单个帐号导入状态 | Account.CheckAccount |
| √ | |
查询多个帐号导入状态 | Account.CheckAccounts | 用于查询自有帐号是否已导入即时通信 IM,支持批量查询。 | √ | |
失效帐号登录状态 | Account.KickAccount | 本接口适用于将 App 用户帐号的登录状态(例如 UserSig)失效。 | √ | |
查询单个帐号在线状态 | Account.GetAccountOnlineState |
| √ | |
查询多个帐号在线状态 | Account.GetAccountsOnlineState | 获取用户当前的登录状态。 | √ | |
资料管理 | 设置资料 | Profile.SetProfile | 支持 标配资料字段 和 自定义资料字段 的设置。 | √ |
拉取资料 | Profile.GetProfiles | √ | ||
关系链管理 | 添加单个好友 | SNS.AddFriend |
| √ |
添加多个好友 | SNS.AddFriends | 添加好友,支持批量添加好友。 | √ | |
导入单个好友 | SNS.ImportFriend | 本方法拓展于“添加多个好友(ImportFriends)”方法。 | √ | |
导入多个好友 | SNS.ImportFriends |
| √ | |
更新单个好友 | SNS.UpdateFriend |
| √ | |
更新多个好友 | SNS.UpdateFriends |
| √ | |
删除单个好友 | SNS.DeleteFriend | 本方法拓展于“删除多个好友(DeleteFriends)”方法。 | √ | |
删除多个好友 | SNS.DeleteFriends | 删除好友,支持单向删除好友和双向删除好友。 | √ | |
删除所有好友 | SNS.DeleteAllFriends | 清除指定用户的标配好友数据和自定义好友数据。 | √ | |
校验单个好友 | SNS.CheckFriend | 本方法拓展于“校验多个好友(CheckFriends)”方法。 | √ | |
校验多个好友 | SNS.CheckFriends | 支持批量校验好友关系。 | √ | |
拉取好友 | SNS.FetchFriends |
| √ | |
拉取好友 | SNS.PullFriends |
| √ | |
拉取单个指定好友 | SNS.GetFriend |
| √ | |
拉取多个指定好友 | SNS.GetFriends |
| √ | |
添加黑名单 | SNS.AddBlacklist | 添加黑名单,支持批量添加黑名单。 | √ | |
删除黑名单 | SNS.DeleteBlacklist | 删除指定黑名单。 | √ | |
拉取黑名单 | SNS.FetchBlacklist | 支持分页拉取所有黑名单。 | √ | |
拉取黑名单 | SNS.PullBlacklist |
| √ | |
校验黑名单 | SNS.CheckBlacklist | 支持批量校验黑名单。 | √ | |
添加分组 | SNS.AddGroups | 添加分组,支持批量添加分组,并将指定好友加入到新增分组中。 | √ | |
删除分组 | SNS.DeleteGroups | 删除指定分组。 | √ | |
拉取分组 | SNS.GetGroups | 拉取分组,支持指定分组以及拉取分组下的好友列表。 | √ | |
私聊消息 | 单发单聊消息 | Private.SendMessage |
| √ |
批量发单聊消息 | Private.SendMessages |
| √ | |
导入单聊消息 | Private.ImportMessage |
| √ | |
查询单聊消息 | Private.FetchMessages |
| √ | |
续拉取单聊消息 | Private.PullMessages |
| √ | |
撤回单聊消息 | Private.RevokeMessage |
| √ | |
设置单聊消息已读 | Private.SetMessageRead | 设置用户的某个单聊会话的消息全部已读。 | √ | |
查询单聊未读消息计数 | Private.GetUnreadMessageNum | App 后台可以通过该接口查询特定账号的单聊总未读数(包含所有的单聊会话)或者单个单聊会话的未读数。 | √ | |
全员推送 | 设置应用属性名称 | Push.PushMessage |
| √ |
设置应用属性名称 | Push.SetAttrNames | 每个应用可以设置自定义的用户属性,最多可以有10个。通过本接口可以设置每个属性的名称,设置完成后,即可用于按用户属性推送等。 | √ | |
获取应用属性名称 | Push.GetAttrNames | 管理员获取应用属性名称。使用前请先 设置应用属性名称 。 | √ | |
获取用户属性 | Push.GetUserAttrs | 获取用户属性(必须以管理员帐号调用);每次最多只能获取100个用户的属性。使用前请先 设置应用属性名称 。 | √ | |
设置用户属性 | Push.SetUserAttrs | 管理员给用户设置属性。每次最多只能给100个用户设置属性。使用前请先 设置应用属性名称 。 | √ | |
删除用户属性 | Push.DeleteUserAttrs | 管理员给用户删除属性。注意每次最多只能给100个用户删除属性。使用前请先 设置应用属性名称。 | √ | |
获取用户标签 | Push.GetUserTags | 获取用户标签(必须以管理员帐号调用)。每次最多只能获取100个用户的标签。 | √ | |
添加用户标签 | Push.AddUserTags |
| √ | |
删除用户标签 | Push.DeleteUserTags | 管理员给用户删除标签。注意每次最多只能给100个用户删除标签。 | √ | |
删除用户所有标签 | Push.DeleteUserAllTags | 管理员给用户删除所有标签。注意每次最多只能给100个用户删除所有标签。 | √ | |
全局禁言管理 | 设置全局禁言 | Mute.SetNoSpeaking |
| √ |
查询全局禁言 | Mute.GetNoSpeaking |
| √ | |
运营管理 | 拉取运营数据 | Operation.GetOperationData | App 管理员可以通过该接口拉取最近30天的运营数据,可拉取的字段见下文可拉取的运营字段。 | √ |
下载最近消息记录 | Operation.GetHistoryData | App 管理员可以通过该接口获取 App 中最近7天中某天某小时的所有单发或群组消息记录的下载地址。 | √ | |
获取服务器IP地址 | Operation.GetIPList | 基于安全等考虑,您可能需要获知服务器的 IP 地址列表,以便进行相关限制。App 管理员可以通过该接口获得 SDK、第三方回调所使用到的服务器 IP 地址列表或 IP 网段信息。 | √ | |
群组管理 | 拉取App中的所有群组ID | Group.FetchGroupIds | App 管理员可以通过该接口获取App中所有群组的ID。 | √ |
拉取App中的所有群组 | Group.FetchGroups | 本方法由“拉取App中的所有群组ID(FetchGroupIds)”拓展而来 | √ | |
续拉取App中的所有群组 | Group.PullGroups | 本方法由“拉取App中的所有群组(FetchGroups)”拓展而来 | √ | |
创建群组 | Group.CreateGroup | App 管理员可以通过该接口创建群组。 | √ | |
获取单个群详细资料 | Group.GetGroup | 本方法由“获取多个群详细资料(GetGroups)”拓展而来 | √ | |
获取多个群详细资料 | Group.GetGroups | App 管理员可以根据群组 ID 获取群组的详细信息。 | √ | |
拉取群成员详细资料 | Group.FetchMembers | App管理员可以根据群组ID获取群组成员的资料。 | √ | |
拉取群成员详细资料 | Group.PullMembers | 本方法由“拉取群成员详细资料(FetchMembers)”拓展而来 | √ | |
修改群基础资料 | Group.UpdateGroup | App管理员可以通过该接口修改指定群组的基础信息。 | √ | |
增加群成员 | Group.AddMembers | App管理员可以通过该接口向指定的群中添加新成员。 | √ | |
删除群成员 | Group.DeleteMembers | App管理员可以通过该接口删除群成员。 | √ | |
修改群成员资料 | Group.UpdateMember | App管理员可以通过该接口修改群成员资料。 | √ | |
解散群组 | Group.DestroyGroup | App管理员通过该接口解散群。 | √ | |
拉取用户所加入的群组 | Group.FetchMemberGroups | App管理员可以通过本接口获取某一用户加入的群信息。默认不获取用户已加入但未激活好友工作群(Work)以及直播群(AVChatRoom)群信息。 | √ | |
拉取用户所加入的群组 | Group.PullMemberGroups | 本方法由“拉取用户所加入的群组(FetchMemberGroups)”拓展而来 | √ | |
查询用户在群组中的身份 | Group.GetRolesInGroup | App管理员可以通过该接口获取一批用户在群内的身份,即“成员角色”。 | √ | |
批量禁言 | Group.ForbidSendMessage |
| √ | |
取消禁言 | Group.AllowSendMessage | 本方法由“批量禁言(ForbidSendMessage)”拓展而来 | √ | |
获取被禁言群成员列表 | Group.GetShuttedUpMembers | App管理员可以根据群组ID获取群组中被禁言的用户列表。 | √ | |
在群组中发送普通消息 | Group.SendMessage | App管理员可以通过该接口在群组中发送普通消息。 | √ | |
在群组中发送系统通知 | Group.SendNotification | App 管理员可以通过该接口在群组中发送系统通知。 | √ | |
转让群主 | Group.ChangeGroupOwner |
| √ | |
撤回单条群消息 | Group.RevokeMessage | 本方法由“撤回多条群消息(RevokeMessages)”拓展而来 | √ | |
撤回多条群消息 | Group.RevokeMessages | App 管理员通过该接口撤回指定群组的消息,消息需要在漫游有效期以内。 | √ | |
导入群基础资料 | Group.ImportGroup | App 管理员可以通过该接口导入群组,不会触发回调、不会下发通知;当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群组数据。 | √ | |
导入群消息 | Group.ImportMembers |
| √ | |
导入多个群成员 | Group.ImportMembers |
| √ | |
设置成员未读消息计数 | Group.SetMemberUnreadMsgNum |
| √ | |
撤回指定用户发送的消息 | Group.RevokeMemberMessages | 该API接口的作用是撤回最近1000条消息中指定用户发送的消息。 | √ | |
拉取群历史消息 | Group.FetchMessages |
| √ | |
续拉取群历史消息 | Group.PullMessages | 本方法由“拉取群历史消息(FetchMessages)”拓展而来 | √ | |
获取直播群在线人数 | Group.GetOnlineMemberNum | App 管理员可以根据群组 ID 获取直播群在线人数。 | √ | |
最近联系人 | 拉取会话列表 | RecentContact.FetchSessions | 支持分页拉取会话列表。 | √ |
拉取会话列表 | RecentContact.PullSessions |
| √ | |
删除单个会话 | RecentContact.DeleteSession | 删除指定会话,支持同步清理漫游消息。 | √ |