Documentation
¶
Index ¶
- Constants
- func DoNotSyncToFromAccount() doNotSyncToFromAccount
- func SetFromAccount(from string) sendGroupMsgRequestOptFunc
- type APNSOfflinePushInfo
- type AccountImportRequest
- type AddGroupMemberOpt
- type AddGroupMemberRequest
- type AddGroupMemberResponse
- type AddGroupMemberResultItem
- type AndroidOfflinePushInfo
- type AppMemberDefinedDataItem
- type BatchSendMsgOpt
- type BatchSendMsgRequest
- type ChangeGroupOwnerRequest
- type Client
- func (c *Client) AccountImport(ctx context.Context, request AccountImportRequest) *IMResponse
- func (c *Client) AddGroupMember(ctx context.Context, groupId string, im_ids []string, ...) *AddGroupMemberResponse
- func (c *Client) BatchSendMsg(ctx context.Context, from string, to []string, bodies []MsgBody, ...) *IMResponse
- func (c *Client) ChangeGroupOwner(ctx context.Context, groupId string, imId string) *IMResponse
- func (c *Client) CreateGroup(ctx context.Context, name string, groupType consts.GroupType, ...) *CreateGroupResponse
- func (c *Client) DeleteGroupMember(ctx context.Context, groupId string, imIds []string, ...) *IMResponse
- func (c *Client) GetGroupMemberInfo(ctx context.Context, groupId string, opts ...GetGroupMemberInfoOpt) *GetGroupMemberInfoResponse
- func (c *Client) GroupMsgGetSimple(ctx context.Context, groupId string, msgNumber int, seq *int) *GroupMsgGetSimpleResponse
- func (c *Client) Kick(ctx context.Context, identifier string) *IMResponse
- func (c *Client) ModifyGroupBaseInfo(ctx context.Context, groupId string, opts ...ModifyGroupBaseInfoOpt) *IMResponse
- func (c *Client) ModifyGroupMemberInfo(ctx context.Context, groupId string, imId string, ...) *IMResponse
- func (c *Client) MultiAccountImport(ctx context.Context, identifiers []string) *MultiAccountImportResponse
- func (c *Client) PortraitSet(ctx context.Context, accountId string, items []ProfileItem) *PortraitSetResponse
- func (c *Client) SendGroupMsg(ctx context.Context, groupId string, msgBody []MsgBody, ...) *SendGroupMsgResponse
- func (c *Client) SendMsg(ctx context.Context, from string, to string, bodies []MsgBody, ...) *IMResponse
- func (c *Client) SetClient(client *resty.Client)
- type CreateGroupMemberItem
- type CreateGroupOpt
- type CreateGroupRequest
- type CreateGroupResponse
- type DeleteGroupMemberOpt
- type DeleteGroupMemberRequest
- type GetGroupMemberInfoOpt
- type GetGroupMemberInfoRequest
- type GetGroupMemberInfoResponse
- type GroupAppDefinedDataItem
- type GroupMemberItem
- type GroupMessageItem
- type GroupMsgBody
- type GroupMsgContent
- type GroupMsgGetSimpleRequest
- type GroupMsgGetSimpleResponse
- type GroupMsgPriority
- type IMError
- type IMResponse
- type ModifyGroupBaseInfoOpt
- type ModifyGroupBaseInfoRequest
- type ModifyGroupMemberInfoOpt
- type ModifyGroupMemberInfoRequest
- type MsgBody
- type MsgType
- type MultiAccountImportResponse
- type OfflinePushInfo
- type PortraitSetRequest
- type PortraitSetResponse
- type ProfileItem
- type ProfileTag
- type SendGroupMsgRequest
- type SendGroupMsgRequestOpt
- type SendGroupMsgResponse
- type SendMsgOpt
- type SendMsgRequest
- type SyncSetting
Constants ¶
View Source
const ( Service_IM_OPEN_LOGIN_SVC = "im_open_login_svc" Service_OPEN_IM = "openim" Service_PROFILE = "profile" Service_GROUP_OPEN_HTTP_SVC = "group_open_http_svc" )
View Source
const ( // im_open_login_svc Command_ACCOUNT_IMPORT = "account_import" Command_MULTIACCOUNT_IMPORT = "multiaccount_import" Command_KICK = "kick" // openim Command_SEND_MSG = "sendmsg" Command_BATCH_SEND_MSG = "batchsendmsg" Command_QUERY_STATE = "querystate" // profile Command_PORTRAIT_SET = "portrait_set" // group_open_http_svc Command_CREATE_GROUP = "create_group" Command_ADD_GROUP_MEMBER = "add_group_member" Command_GROUP_MSG_GET_SIMPLE = "group_msg_get_simple" Command_GET_GROUP_MEMBER_INFO = "get_group_member_info" Command_DELETE_GROUP_MEMBER = "delete_group_member" Command_MODIFY_GROUP_MEMBER_INFO = "modify_group_member_info" Command_MODIFY_GROUP_BASE_INFO = "modify_group_base_info" Command_CHANGE_GROUP_OWNER = "change_group_owner" Command_SEND_GROUP_MSG = "send_group_msg" )
View Source
const ( GroupMsgPriorityHigh GroupMsgPriority = "High" GroupMsgPriorityNormal = "Normal" GroupMsgPriorityLow = "Low" GroupMsgPriorityLowest = "Lowest" )
View Source
const ( MsgType_TIMTextElem MsgType = "TIMTextElem" MsgType_TIMFaceElem = "TIMFaceElem" MsgType_TIMLocationElem = "TIMLocationElem" MsgType_TIMCustomElem = "TIMCustomElem" )
View Source
const ( ProfileTag_Tag_Profile_IM_Nick ProfileTag = "Tag_Profile_IM_Nick" ProfileTag_Tag_Profile_IM_Gender = "Tag_Profile_IM_Gender" ProfileTag_Tag_Profile_IM_BirthDay = "Tag_Profile_IM_BirthDay" ProfileTag_Tag_Profile_IM_Location = "Tag_Profile_IM_Location" ProfileTag_Tag_Profile_IM_SelfSignature = "Tag_Profile_IM_SelfSignature" ProfileTag_Tag_Profile_IM_AllowType = "Tag_Profile_IM_AllowType" ProfileTag_Tag_Profile_IM_Language = "Tag_Profile_IM_Language" ProfileTag_Tag_Profile_IM_Image = "Tag_Profile_IM_Image" ProfileTag_Tag_Profile_IM_MsgSettings = "Tag_Profile_IM_MsgSettings" ProfileTag_Tag_Profile_IM_AdminForbidType = "Tag_Profile_IM_AdminForbidType" ProfileTag_Tag_Profile_IM_Level = "Tag_Profile_IM_Level" ProfileTag_Tag_Profile_IM_Role = "Tag_Profile_IM_Role" )
Variables ¶
This section is empty.
Functions ¶
func DoNotSyncToFromAccount ¶
func DoNotSyncToFromAccount() doNotSyncToFromAccount
func SetFromAccount ¶
func SetFromAccount(from string) sendGroupMsgRequestOptFunc
Types ¶
type APNSOfflinePushInfo ¶
type APNSOfflinePushInfo struct {
// 离线推送声音文件路径。
Sound string `json:"Sound"`
// 这个字段缺省或者为 0 表示需要计数,为 1 表示本条消息不需要计数,即右上角图标数字不增加
BadgeMode int `json:"BadgeMode"`
// 该字段用于标识apns推送的标题,若填写则会覆盖最上层Title
Title string `json:"Title"`
// 该字段用于标识apns推送的子标题
SubTitle string `json:"SubTitle"`
// 该字段用于标识apns携带的图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上
Image string `json:"Image"`
}
type AccountImportRequest ¶
type AddGroupMemberOpt ¶
type AddGroupMemberOpt interface {
ApplyToAddGroupMemberRequest(req *AddGroupMemberRequest)
}
type AddGroupMemberRequest ¶
type AddGroupMemberRequest struct {
GroupId string `json:"GroupId"`
Silence int `json:"Silence,omitempty"`
MemberList []types.MinimalMember `json:"MemberList"`
}
type AddGroupMemberResponse ¶
type AddGroupMemberResponse struct {
IMResponse
MemberList []AddGroupMemberResultItem `json:"MemberList"`
}
type AndroidOfflinePushInfo ¶
type AndroidOfflinePushInfo struct {
// 离线推送声音文件路径。
Sound string `json:"Sound"`
}
type BatchSendMsgOpt ¶
type BatchSendMsgOpt interface {
ApplyToBatchSendMsgRequest(req *BatchSendMsgRequest)
}
type BatchSendMsgRequest ¶
type BatchSendMsgRequest struct {
// 1:把消息同步到 From_Account 在线终端和漫游上;
// 2:消息不同步至 From_Account;若不填写默认情况下会将消息存 From_Account 漫游
SyncOtherMachine SyncSetting `json:"SyncOtherMachine,omitempty"`
// 消息发送方帐号。(用于指定发送消息方帐号)
FromAccount string `json:"From_Account,omitempty"`
// 必填,消息接收方帐号。
ToAccount []string `json:"To_Account"`
// 必填,消息随机数,由随机函数产生。(用作消息去重)(
// NOTE(QuantumGhost): 这个字段会在初始化的时候自懂添加
MsgRandom int `json:"MsgRandom"`
// 必填,消息内容,具体格式请参考 [消息格式描述](http://bit.ly/2ARGSfV)。
// (注意,一条消息可包括多种消息元素,MsgBody 为 Array 类型)
MsgBody []MsgBody `json:"MsgBody"`
// 离线推送信息配置,具体可参考 [消息格式描述](http://bit.ly/2AMK9NQ)。
OfflinePushInfo *OfflinePushInfo `json:"OfflinePushInfo,omitempty"`
}
type ChangeGroupOwnerRequest ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) AccountImport ¶
func (c *Client) AccountImport(ctx context.Context, request AccountImportRequest) *IMResponse
func (*Client) AddGroupMember ¶
func (c *Client) AddGroupMember(ctx context.Context, groupId string, im_ids []string, opts ...AddGroupMemberOpt) *AddGroupMemberResponse
func (*Client) BatchSendMsg ¶
func (c *Client) BatchSendMsg(ctx context.Context, from string, to []string, bodies []MsgBody, opts ...BatchSendMsgOpt) *IMResponse
func (*Client) ChangeGroupOwner ¶
func (*Client) CreateGroup ¶
func (c *Client) CreateGroup(ctx context.Context, name string, groupType consts.GroupType, opts ...CreateGroupOpt) *CreateGroupResponse
func (*Client) DeleteGroupMember ¶
func (c *Client) DeleteGroupMember(ctx context.Context, groupId string, imIds []string, opts ...DeleteGroupMemberOpt) *IMResponse
func (*Client) GetGroupMemberInfo ¶
func (c *Client) GetGroupMemberInfo(ctx context.Context, groupId string, opts ...GetGroupMemberInfoOpt) *GetGroupMemberInfoResponse
func (*Client) GroupMsgGetSimple ¶
func (*Client) ModifyGroupBaseInfo ¶
func (c *Client) ModifyGroupBaseInfo(ctx context.Context, groupId string, opts ...ModifyGroupBaseInfoOpt) *IMResponse
func (*Client) ModifyGroupMemberInfo ¶
func (c *Client) ModifyGroupMemberInfo(ctx context.Context, groupId string, imId string, opts ...ModifyGroupMemberInfoOpt) *IMResponse
func (*Client) MultiAccountImport ¶
func (c *Client) MultiAccountImport(ctx context.Context, identifiers []string) *MultiAccountImportResponse
func (*Client) PortraitSet ¶
func (c *Client) PortraitSet(ctx context.Context, accountId string, items []ProfileItem) *PortraitSetResponse
func (*Client) SendGroupMsg ¶
func (c *Client) SendGroupMsg(ctx context.Context, groupId string, msgBody []MsgBody, opts ...SendGroupMsgRequestOpt) *SendGroupMsgResponse
func (*Client) SendMsg ¶
func (c *Client) SendMsg(ctx context.Context, from string, to string, bodies []MsgBody, opts ...SendMsgOpt) *IMResponse
type CreateGroupMemberItem ¶
type CreateGroupMemberItem struct {
Member_Account string `json:"Member_Account"`
Role consts.GroupRole `json:"Role,omitempty"`
AppMemberDefinedData []AppMemberDefinedDataItem `json:"AppMemberDefinedData,omitempty"`
}
type CreateGroupOpt ¶
type CreateGroupOpt interface {
ApplyToCreateGroupRequest(req *CreateGroupRequest)
}
type CreateGroupRequest ¶
type CreateGroupRequest struct {
// required
Type consts.GroupType `json:"Type"`
Name string `json:"Name,omitempty"`
// optional
Owner_Account string `json:"Owner_Account,omitempty"`
GroupId string `json:"GroupId,omitempty"`
Introduction string `json:"Introduction,omitempty"`
Notification string `json:"Notification,omitempty"`
FaceUrl string `json:"FaceUrl,omitempty"`
MaxMemberCount int `json:"MaxMemberCount,omitempty"`
ApplyJoinOption consts.ApplyJoinOption `json:"ApplyJoinOption,omitempty"`
AppDefinedData []GroupAppDefinedDataItem `json:"AppDefinedData,omitempty"`
MemberList []CreateGroupMemberItem `json:"MemberList,omitempty"`
}
type CreateGroupResponse ¶
type CreateGroupResponse struct {
IMResponse
GroupId string `json:"GroupId"`
}
type DeleteGroupMemberOpt ¶
type DeleteGroupMemberOpt interface {
ApplyToDeleteGroupMemberRequest(request *DeleteGroupMemberRequest)
}
type GetGroupMemberInfoOpt ¶
type GetGroupMemberInfoOpt interface {
ApplyToGetGroupMemberInfoRequest(req *GetGroupMemberInfoRequest)
}
type GetGroupMemberInfoRequest ¶
type GetGroupMemberInfoRequest struct {
GroupId string `json:"GroupId"`
MemberInfoFilter []string `json:"MemberInfoFilter,omitempty"`
MemberRoleFilter []string `json:"MemberRoleFilter,omitempty"`
AppDefinedDataFilter_GroupMember []string `json:"AppDefinedDataFilter_GroupMember,omitempty"`
Limit int `json:"Limit,omitempty"`
Offset int `json:"Offset,omitempty"`
}
type GetGroupMemberInfoResponse ¶
type GetGroupMemberInfoResponse struct {
IMResponse
MemberNum int `json:"MemberNum"`
MemberList []GroupMemberItem `json:"MemberList"`
}
type GroupAppDefinedDataItem ¶
type GroupMemberItem ¶
type GroupMemberItem struct {
MemberAccount string `json:"Member_Account"`
Role string `json:"Role"`
JoinTime int `json:"JoinTime"`
MsgSeq int `json:"MsgSeq"`
MsgFlag string `json:"MsgFlag"`
LastSendMsgTime int `json:"LastSendMsgTime"`
ShutUpUntil int `json:"ShutUpUntil"`
AppMemberDefinedData []GroupAppDefinedDataItem `json:"AppMemberDefinedData"`
}
type GroupMessageItem ¶
type GroupMsgBody ¶
type GroupMsgBody struct {
MsgContent GroupMsgContent `json:"MsgContent"`
MsgType string `json:"MsgType"`
}
type GroupMsgContent ¶
type GroupMsgGetSimpleResponse ¶
type GroupMsgGetSimpleResponse struct {
IMResponse
IsFinished int `json:"IsFinished"`
RspMsgList []GroupMessageItem `json:"RspMsgList"`
}
type GroupMsgPriority ¶
type GroupMsgPriority string
type IMResponse ¶
type IMResponse struct {
ActionStatus string `json:"ActionStatus"`
ErrorInfo string `json:"ErrorInfo"`
ErrorCode int `json:"errorCode"`
// contains filtered or unexported fields
}
func (*IMResponse) Error ¶
func (r *IMResponse) Error() error
type ModifyGroupBaseInfoOpt ¶
type ModifyGroupBaseInfoOpt interface {
ApplyModifyGroupBaseInfoRequest(req *ModifyGroupBaseInfoRequest)
}
type ModifyGroupBaseInfoRequest ¶
type ModifyGroupBaseInfoRequest struct {
GroupID string `json:"GroupId"`
Name string `json:"Name,omitempty"`
Introduction string `json:"Introduction,omitempty"`
Notification string `json:"Notification,omitempty"`
FaceURL string `json:"FaceUrl,omitempty"`
MaxMemberNum int64 `json:"MaxMemberNum,omitempty"`
ApplyJoinOption consts.ApplyJoinOption `json:"ApplyJoinOption,omitempty"`
ShutUpAllMember string `json:"ShutUpAllMember,omitempty"`
AppDefinedData []GroupAppDefinedDataItem `json:"AppDefinedData,omitempty"`
}
type ModifyGroupMemberInfoOpt ¶
type ModifyGroupMemberInfoOpt interface {
ApplyToModifyGroupMemberInfoRequest(request *ModifyGroupMemberInfoRequest)
}
type ModifyGroupMemberInfoRequest ¶
type ModifyGroupMemberInfoRequest struct {
GroupID string `json:"GroupId"`
MemberAccount string `json:"Member_Account"`
Role consts.GroupRole `json:"Role,omitempty"`
MsgFlag string `json:"MsgFlag,omitempty"`
NameCard string `json:"NameCard,omitempty"`
AppMemberDefinedData []GroupAppDefinedDataItem `json:"AppMemberDefinedData,omitempty"`
}
type MsgBody ¶
type MsgBody interface {
Type() MsgType
}
marker interface
func NewCustomMsgBody ¶
func NewTextMsgBody ¶
type MultiAccountImportResponse ¶
type MultiAccountImportResponse struct {
IMResponse
FailAccounts []string `json:"FailAccounts"`
}
type OfflinePushInfo ¶
type OfflinePushInfo struct {
// 0表示推送,1表示不离线推送。
PushFlag int `json:"PushFlag"`
// 离线推送标题。该字段为ios和android共用
Title string `json:"Title"`
// 离线推送内容 。
Desc string `json:"Desc"`
// 离线推送透传内容。
Ext string `json:"Ext"`
//
AndroidInfo AndroidOfflinePushInfo `json:"AndroidInfo"`
ApnsInfo APNSOfflinePushInfo `json:"ApnsInfo"`
}
func (*OfflinePushInfo) ApplyToBatchSendMsgRequest ¶
func (o *OfflinePushInfo) ApplyToBatchSendMsgRequest(req *BatchSendMsgRequest)
func (*OfflinePushInfo) ApplyToSendMsgRequest ¶
func (o *OfflinePushInfo) ApplyToSendMsgRequest(req *SendMsgRequest)
type PortraitSetRequest ¶
type PortraitSetRequest struct {
FromAccount string `json:"From_Account"`
ProfileItem []ProfileItem `json:"ProfileItem"`
}
type PortraitSetResponse ¶
type PortraitSetResponse struct {
IMResponse
ErrorDisplay string
}
type ProfileItem ¶
type ProfileItem struct {
Tag ProfileTag `json:"Tag"`
Value interface{} `json:"Value"`
}
func NewNickNameProfileItem ¶
func NewNickNameProfileItem(nickname string) ProfileItem
type ProfileTag ¶
type ProfileTag string
type SendGroupMsgRequest ¶
type SendGroupMsgRequest struct {
GroupID string `json:"GroupId"`
Random int64 `json:"Random"`
MsgPriority GroupMsgPriority `json:"MsgPriority,omitempty"`
MsgBody []MsgBody `json:"MsgBody"`
FromAccount string `json:"From_Account,omitempty"`
OfflinePushInfo *OfflinePushInfo `json:"OfflinePushInfo,omitempty"`
ForbidCallbackControl []string `json:"ForbidCallbackControl,omitempty"`
}
type SendGroupMsgRequestOpt ¶
type SendGroupMsgRequestOpt interface {
ApplyToSendGroupMsgRequest(req *SendGroupMsgRequest)
}
func ForbidAfterSendMsgCallback ¶
func ForbidAfterSendMsgCallback() SendGroupMsgRequestOpt
func ForbidBeforeSendMsgCallback ¶
func ForbidBeforeSendMsgCallback() SendGroupMsgRequestOpt
type SendGroupMsgResponse ¶
type SendGroupMsgResponse struct {
IMResponse
MsgTime int64 `json:"MsgTime"`
MsgSeq int64 `json:"MsgSeq"`
}
type SendMsgOpt ¶
type SendMsgOpt interface {
ApplyToSendMsgRequest(req *SendMsgRequest)
}
func MsgLifeTime ¶
func MsgLifeTime(lifeTime int) SendMsgOpt
type SendMsgRequest ¶
type SendMsgRequest struct {
// 1:把消息同步到 From_Account 在线终端和漫游上;
// 2:消息不同步至 From_Account;若不填写默认情况下会将消息存 From_Account 漫游
SyncOtherMachine SyncSetting `json:"SyncOtherMachine,omitempty"`
// 消息发送方帐号。(用于指定发送消息方帐号)
FromAccount string `json:"From_Account,omitempty"`
// 必填,消息接收方帐号。
ToAccount string `json:"To_Account"`
// 消息离线保存时长(秒数),最长为 7 天(604800s)。若消息只发在线用户,不想保存离线,则该字段填 0。若不填,则默认保存 7 天
// NOTE(QuantumGhost): 这里为了避免 *int,默认值设置为 604800,如果设置为 0 就会发送 0
MsgLifeTime int `json:"MsgLifeTime"`
// 必填,消息随机数,由随机函数产生。(用作消息去重)(
// NOTE(QuantumGhost): 这个字段会在初始化的时候自懂添加
MsgRandom int `json:"MsgRandom"`
// 消息时间戳,UNIX 时间戳。
MsgTimeStamp int `json:"MsgTimeStamp,omitempty"`
// 必填,消息内容,具体格式请参考 [消息格式描述](http://bit.ly/2ARGSfV)。
// (注意,一条消息可包括多种消息元素,MsgBody 为 Array 类型)
MsgBody []MsgBody `json:"MsgBody"`
// 离线推送信息配置,具体可参考 [消息格式描述](http://bit.ly/2AMK9NQ)。
OfflinePushInfo *OfflinePushInfo `json:"OfflinePushInfo,omitempty"`
}
type SyncSetting ¶
type SyncSetting int
const ( SyncSetting_SyncToFromAccunt SyncSetting = 1 SyncSetting_DonotSyncToFromAccount = 2 )
func (SyncSetting) ApplyToBatchSendMsgRequest ¶
func (s SyncSetting) ApplyToBatchSendMsgRequest(req *BatchSendMsgRequest)
func (SyncSetting) ApplyToSendMsgRequest ¶
func (s SyncSetting) ApplyToSendMsgRequest(req *SendMsgRequest)
Click to show internal directories.
Click to hide internal directories.