Documentation
¶
Index ¶
- Constants
- type ChangeType
- type ChatInfo
- type CheckMsgAuditRoomAgreeInfo
- type CheckMsgAuditSingleAgreeInfo
- type CheckMsgAuditSingleAgreeUserInfo
- type CtorOption
- type DeptInfo
- type EventAddExternalContact
- type EventAddHalfExternalContact
- type EventChangeExternalChat
- type EventDelExternalContact
- type EventDelFollowUser
- type EventEditExternalContact
- type EventTransferFail
- type EventType
- type ExternalAttr
- type ExternalAttrMiniprogram
- type ExternalAttrText
- type ExternalAttrWeb
- type ExternalContact
- type ExternalContactCorpTag
- type ExternalContactCorpTagGroup
- type ExternalContactGroupChatTransferFailed
- type ExternalContactInfo
- type ExternalContactMarkTag
- type ExternalContactRemark
- type ExternalContactTransferResult
- type ExternalContactTransferStatus
- type ExternalContactUnassigned
- type ExternalContactUnassignedList
- type ExternalProfile
- type ExternalUserType
- type FollowUser
- type FollowUserAddWay
- type FollowUserTag
- type FollowUserTagType
- type HTTPHandler
- type ImageMessageExtras
- type JSCodeSession
- type LinkMessageExtras
- type LocationMessageExtras
- type Media
- type MediaUploadResult
- type MessageType
- type MsgAuditAgreeStatus
- type MsgAuditEdition
- type MsgAuditGroupChat
- type MsgAuditGroupChatMember
- type Recipient
- type RxMessage
- func (m *RxMessage) EventAddExternalContact() (EventAddExternalContact, bool)
- func (m *RxMessage) EventAddHalfExternalContact() (EventAddHalfExternalContact, bool)
- func (m *RxMessage) EventChangeExternalChat() (EventChangeExternalChat, bool)
- func (m *RxMessage) EventDelExternalContact() (EventDelExternalContact, bool)
- func (m *RxMessage) EventDelFollowUser() (EventDelFollowUser, bool)
- func (m *RxMessage) EventEditExternalContact() (EventEditExternalContact, bool)
- func (m *RxMessage) EventTransferFail() (EventTransferFail, bool)
- func (m *RxMessage) Image() (ImageMessageExtras, bool)
- func (m *RxMessage) Link() (LinkMessageExtras, bool)
- func (m *RxMessage) Location() (LocationMessageExtras, bool)
- func (m *RxMessage) String() string
- func (m *RxMessage) Text() (TextMessageExtras, bool)
- func (m *RxMessage) Video() (VideoMessageExtras, bool)
- func (m *RxMessage) Voice() (VoiceMessageExtras, bool)
- type RxMessageHandler
- type TextMessageExtras
- type UserDeptInfo
- type UserGender
- type UserIdentityInfo
- type UserInfo
- type UserStatus
- type VideoMessageExtras
- type VoiceMessageExtras
- type Workwx
- type WorkwxApp
- func (c *WorkwxApp) AddExternalContactCorpTag(req ExternalContactCorpTagGroup) ([]ExternalContactCorpTagGroup, error)
- func (c *WorkwxApp) CheckMsgAuditRoomAgree(roomId string) ([]CheckMsgAuditRoomAgreeInfo, error)
- func (c *WorkwxApp) CheckMsgAuditSingleAgree(infos []CheckMsgAuditSingleAgreeUserInfo) ([]CheckMsgAuditSingleAgreeInfo, error)
- func (c *WorkwxApp) CreateAppchat(chatInfo *ChatInfo) (chatid string, err error)
- func (c *WorkwxApp) DelExternalContactCorpTag(tagID, groupID []string) error
- func (c *WorkwxApp) EditExternalContactCorpTag(id, name string, order uint32) error
- func (c *WorkwxApp) GetAppchat(chatid string) (*ChatInfo, error)
- func (c *WorkwxApp) GetExternalContact(externalUserid string) (*ExternalContactInfo, error)
- func (c *WorkwxApp) GetJSAPITicket() (string, error)
- func (c *WorkwxApp) GetJSAPITicketAgentConfig() (string, error)
- func (c *WorkwxApp) GetMsgAuditGroupChat(roomID string) (*MsgAuditGroupChat, error)
- func (c *WorkwxApp) GetTransferExternalContactResult(externalUserID, handoverUserID, takeoverUserID string) (*ExternalContactTransferResult, error)
- func (c *WorkwxApp) GetUser(userid string) (*UserInfo, error)
- func (c *WorkwxApp) GetUserIDByMobile(mobile string) (string, error)
- func (c *WorkwxApp) GetUserInfoByCode(code string) (*UserIdentityInfo, error)
- func (c *WorkwxApp) JSCode2Session(jscode string) (*JSCodeSession, error)
- func (c *WorkwxApp) ListAllDepts() ([]*DeptInfo, error)
- func (c *WorkwxApp) ListDepts(id int64) ([]*DeptInfo, error)
- func (c *WorkwxApp) ListExternalContact(userID string) ([]string, error)
- func (c *WorkwxApp) ListExternalContactCorpTags(tagIDs ...string) ([]ExternalContactCorpTagGroup, error)
- func (c *WorkwxApp) ListMsgAuditPermitUser(msgAuditEdition MsgAuditEdition) ([]string, error)
- func (c *WorkwxApp) ListUnassignedExternalContact(pageID, pageSize uint32, cursor string) (*ExternalContactUnassignedList, error)
- func (c *WorkwxApp) ListUsersByDeptID(deptID int64, fetchChild bool) ([]*UserInfo, error)
- func (c *WorkwxApp) MarkExternalContactTag(userID, externalUserID string, addTag, removeTag []string) error
- func (c *WorkwxApp) RemarkExternalContact(req *ExternalContactRemark) error
- func (c *WorkwxApp) SendFileMessage(recipient *Recipient, mediaID string, isSafe bool) error
- func (c *WorkwxApp) SendImageMessage(recipient *Recipient, mediaID string, isSafe bool) error
- func (c *WorkwxApp) SendMPNewsMessage(recipient *Recipient, title string, thumbMediaID string, author string, ...) error
- func (c *WorkwxApp) SendMarkdownMessage(recipient *Recipient, content string, isSafe bool) error
- func (c *WorkwxApp) SendNewsMessage(recipient *Recipient, title string, description string, url string, ...) error
- func (c *WorkwxApp) SendTextCardMessage(recipient *Recipient, title string, description string, url string, ...) error
- func (c *WorkwxApp) SendTextMessage(recipient *Recipient, content string, isSafe bool) error
- func (c *WorkwxApp) SendVideoMessage(recipient *Recipient, mediaID string, description string, title string, ...) error
- func (c *WorkwxApp) SendVoiceMessage(recipient *Recipient, mediaID string, isSafe bool) error
- func (c *WorkwxApp) SpawnAccessTokenRefresher()
- func (c *WorkwxApp) SpawnAccessTokenRefresherWithContext(ctx context.Context)
- func (c *WorkwxApp) SpawnJSAPITicketAgentConfigRefresher()
- func (c *WorkwxApp) SpawnJSAPITicketAgentConfigRefresherWithContext(ctx context.Context)
- func (c *WorkwxApp) SpawnJSAPITicketRefresher()
- func (c *WorkwxApp) SpawnJSAPITicketRefresherWithContext(ctx context.Context)
- func (c *WorkwxApp) TransferExternalContact(externalUserID, handoverUserID, takeoverUserID, transferSuccessMsg string) error
- func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwner string) ([]ExternalContactGroupChatTransferFailed, error)
- func (c *WorkwxApp) UploadPermanentImageMedia(media *Media) (url string, err error)
- func (c *WorkwxApp) UploadTempFileMedia(media *Media) (*MediaUploadResult, error)
- func (c *WorkwxApp) UploadTempImageMedia(media *Media) (*MediaUploadResult, error)
- func (c *WorkwxApp) UploadTempVideoMedia(media *Media) (*MediaUploadResult, error)
- func (c *WorkwxApp) UploadTempVoiceMedia(media *Media) (*MediaUploadResult, error)
- type WorkwxClientError
Examples ¶
Constants ¶
const ( // MsgAuditAgreeStatusAgree 同意 MsgAuditAgreeStatusAgree = "Agree" // MsgAuditAgreeStatusDisagree 不同意 MsgAuditAgreeStatusDisagree = "Disagree" // MsgAuditAgreeStatusDefaultAgree 默认同意 MsgAuditAgreeStatusDefaultAgree = "Default_Agree" )
const DefaultQYAPIHost = "https://qyapi.weixin.qq.com"
DefaultQYAPIHost 默认企业微信 API Host
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChangeType ¶ added in v1.0.0
type ChangeType string
ChangeType 变更类型
const ChangeTypeAddExternalContact ChangeType = "add_external_contact"
ChangeTypeAddExternalContact 添加企业客户事件
const ChangeTypeAddHalfExternalContact ChangeType = "add_half_external_contact"
ChangeTypeAddHalfExternalContact 外部联系人免验证添加成员事件
const ChangeTypeDelExternalContact ChangeType = "del_external_contact"
ChangeTypeDelExternalContact 删除企业客户事件
const ChangeTypeDelFollowUser ChangeType = "del_follow_user"
ChangeTypeDelFollowUser 删除跟进成员事件
const ChangeTypeEditExternalContact ChangeType = "edit_external_contact"
ChangeTypeEditExternalContact 编辑企业客户事件
const ChangeTypeTransferFail ChangeType = "transfer_fail"
ChangeTypeTransferFail 客户接替失败事件
type ChatInfo ¶
type ChatInfo struct {
// ChatID 群聊唯一标志
ChatID string `json:"chatid"`
// Name 群聊名
Name string `json:"name"`
// OwnerUserID 群主id
OwnerUserID string `json:"owner"`
// MemberUserIDs 群成员id列表
MemberUserIDs []string `json:"userlist"`
}
ChatInfo 群聊信息
type CheckMsgAuditRoomAgreeInfo ¶ added in v1.0.0
type CheckMsgAuditRoomAgreeInfo struct {
// StatusChangeTime 同意状态改变的具体时间
StatusChangeTime time.Time
// AgreeStatus 同意:”Agree”,不同意:”Disagree”,默认同意:”Default_Agree”
AgreeStatus MsgAuditAgreeStatus
// ExternalOpenID 群内外部联系人的externalopenid
ExternalOpenID string
}
CheckMsgAuditRoomAgreeInfo 获取会话同意情况(群聊)同意信息
type CheckMsgAuditSingleAgreeInfo ¶ added in v1.0.0
type CheckMsgAuditSingleAgreeInfo struct {
CheckMsgAuditSingleAgreeUserInfo
// AgreeStatus 同意:”Agree”,不同意:”Disagree”,默认同意:”Default_Agree”
AgreeStatus MsgAuditAgreeStatus
// StatusChangeTime 同意状态改变的具体时间
StatusChangeTime time.Time
}
CheckMsgAuditSingleAgreeInfo 获取会话同意情况(单聊)同意信息
type CheckMsgAuditSingleAgreeUserInfo ¶ added in v1.0.0
type CheckMsgAuditSingleAgreeUserInfo struct {
// UserID 内部成员的userid
UserID string `json:"userid"`
// ExternalOpenID 外部成员的externalopenid
ExternalOpenID string `json:"exteranalopenid"`
}
CheckMsgAuditSingleAgreeUserInfo 获取会话同意情况(单聊)内外成员
type CtorOption ¶
type CtorOption interface {
// contains filtered or unexported methods
}
CtorOption 客户端对象构造参数
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) CtorOption
WithHTTPClient 使用给定的 http.Client 作为 HTTP 客户端
type DeptInfo ¶
type DeptInfo struct {
// ID 部门 ID
ID int64 `json:"id"`
// Name 部门名称
Name string `json:"name"`
// ParentID 父亲部门id。根部门为1
ParentID int64 `json:"parentid"`
// Order 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)
Order uint32 `json:"order"`
}
DeptInfo 部门信息
type EventAddExternalContact ¶ added in v1.0.0
type EventAddExternalContact interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// GetState 添加此用户的「联系我」方式配置的state参数,可用于识别添加此用户的渠道
GetState() string
// GetWelcomeCode 欢迎语code,可用于发送欢迎语
GetWelcomeCode() string
// contains filtered or unexported methods
}
EventAddExternalContact 添加企业客户事件的参数。
type EventAddHalfExternalContact ¶ added in v1.0.0
type EventAddHalfExternalContact interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// GetState 添加此用户的「联系我」方式配置的state参数,可用于识别添加此用户的渠道
GetState() string
// contains filtered or unexported methods
}
EventAddHalfExternalContact 外部联系人免验证添加成员事件。
type EventChangeExternalChat ¶ added in v1.0.0
type EventChangeExternalChat interface {
// GetChatID 群ID
GetChatID() string
// GetToUserName 企业微信CorpID
GetToUserName() string
// GetFromUserName 此事件该值固定为sys,表示该消息由系统生成
GetFromUserName() string
// GetFailReason 接替失败的原因, customer_refused-客户拒绝, customer_limit_exceed-接替成员的客户数达到上限
GetFailReason() string
// contains filtered or unexported methods
}
EventChangeExternalChat 客户群变更事件
type EventDelExternalContact ¶ added in v1.0.0
type EventDelExternalContact interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// contains filtered or unexported methods
}
EventDelExternalContact 删除企业客户事件
type EventDelFollowUser ¶ added in v1.0.0
type EventDelFollowUser interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// contains filtered or unexported methods
}
EventDelFollowUser 删除跟进成员事件
type EventEditExternalContact ¶ added in v1.0.0
type EventEditExternalContact interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// GetState 添加此用户的「联系我」方式配置的state参数,可用于识别添加此用户的渠道
GetState() string
// contains filtered or unexported methods
}
EventEditExternalContact 编辑企业客户事件的参数。
type EventTransferFail ¶ added in v1.0.0
type EventTransferFail interface {
// GetUserID 企业服务人员的UserID
GetUserID() string
// GetExternalUserID 外部联系人的userid,注意不是企业成员的帐号
GetExternalUserID() string
// GetFailReason 接替失败的原因, customer_refused-客户拒绝, customer_limit_exceed-接替成员的客户数达到上限
GetFailReason() string
// contains filtered or unexported methods
}
EventTransferFail 客户接替失败事件
type EventType ¶ added in v1.0.0
type EventType string
EventType 事件类型
const EventTypeChangeExternalChat EventType = "change_external_chat"
EventTypeChangeExternalChat 客户群变更事件
const EventTypeChangeExternalContact EventType = "change_external_contact"
EventTypeChangeExternalContact 企业客户事件
type ExternalAttr ¶ added in v1.0.0
type ExternalAttr struct {
// Type 属性类型: 0-文本 1-网页 2-小程序
Type int `json:"type"`
// Name 属性名称: 需要先确保在管理端有创建该属性,否则会忽略
Name string `json:"name"`
// Text 文本类型的属性 ,type为0时必填
Text ExternalAttrText `json:"text"`
// Web 网页类型的属性,url和title字段要么同时为空表示清除该属性,要么同时不为空 ,type为1时必填
Web ExternalAttrWeb `json:"web"`
// Miniprogram 小程序类型的属性,appid和title字段要么同时为空表示清除改属性,要么同时不为空 ,type为2时必填
Miniprogram ExternalAttrMiniprogram `json:"miniprogram"`
}
ExternalAttr 属性列表,目前支持文本、网页、小程序三种类型
type ExternalAttrMiniprogram ¶ added in v1.0.0
type ExternalAttrMiniprogram struct {
// Appid 小程序appid,必须是有在本企业安装授权的小程序,否则会被忽略
Appid string `json:"appid"`
// Pagepath 小程序的页面路径
Pagepath string `json:"pagepath"`
// Title 企业对外简称,需从已认证的企业简称中选填。可在“我的企业”页中查看企业简称认证状态。
Title string `json:"title"`
}
ExternalAttrMiniprogram 小程序类型的属性,appid和title字段要么同时为空表示清除改属性,要么同时不为空 ,type为2时必填
type ExternalAttrText ¶ added in v1.0.0
type ExternalAttrText struct {
// Value 文本属性内容,长度限制12个UTF8字符
Value string `json:"value"`
}
ExternalAttrText 文本类型的属性
type ExternalAttrWeb ¶ added in v1.0.0
type ExternalAttrWeb struct {
// Url 网页的url,必须包含http或者https头
Url string `json:"url"`
// Title 网页的展示标题,长度限制12个UTF8字符
Title string `json:"title"`
}
ExternalAttrWeb 网页类型的属性,url和title字段要么同时为空表示清除该属性,要么同时不为空 ,type为1时必填
type ExternalContact ¶ added in v1.0.0
type ExternalContact struct {
// ExternalUserid 外部联系人的userid
ExternalUserid string `json:"external_userid"`
// Name 外部联系人的名称,如果外部联系人为微信用户,则返回外部联系人的名称为其微信昵称;如果外部联系人为企业微信用户,则会按照以下优先级顺序返回:此外部联系人或管理员设置的昵称、认证的实名和账号名称。
Name string `json:"name"`
// Position 外部联系人的职位,如果外部企业或用户选择隐藏职位,则不返回,仅当联系人类型是企业微信用户时有此字段
Position string `json:"position"`
// Avatar 外部联系人头像,第三方不可获取
Avatar string `json:"avatar"`
// CorpName 外部联系人所在企业的简称,仅当联系人类型是企业微信用户时有此字段
CorpName string `json:"corp_name"`
// Type 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
Type ExternalUserType `json:"type"`
// Gender 外部联系人性别 0-未知 1-男性 2-女性
Gender UserGender `json:"gender"`
// Unionid 外部联系人在微信开放平台的唯一身份标识(微信unionid),通过此字段企业可将外部联系人与公众号/小程序用户关联起来。仅当联系人类型是微信用户,且企业或第三方服务商绑定了微信开发者ID有此字段。查看绑定方法 关于返回的unionid,如果是第三方应用调用该接口,则返回的unionid是该第三方服务商所关联的微信开放者帐号下的unionid。也就是说,同一个企业客户,企业自己调用,与第三方服务商调用,所返回的unionid不同;不同的服务商调用,所返回的unionid也不同。
Unionid string `json:"unionid"`
// ExternalProfile 成员对外信息
ExternalProfile ExternalProfile `json:"external_profile"`
}
ExternalContact 外部联系人
type ExternalContactCorpTag ¶ added in v1.0.0
type ExternalContactCorpTag struct {
// ID 标签id
ID string `json:"id"`
// Name 标签名称
Name string `json:"name"`
// CreateTime 标签创建时间
CreateTime int `json:"create_time"`
// Order 标签排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
Order uint32 `json:"order"`
// Deleted 标签是否已经被删除,只在指定tag_id进行查询时返回
Deleted bool `json:"deleted"`
}
ExternalContactCorpTag 企业客户标签
type ExternalContactCorpTagGroup ¶ added in v1.0.0
type ExternalContactCorpTagGroup struct {
// GroupID 标签组id
GroupID string `json:"group_id"`
// GroupName 标签组名称
GroupName string `json:"group_name"`
// CreateTime 标签组创建时间
CreateTime int `json:"create_time"`
// Order 标签组排序的次序值,order值大的排序靠前。有效的值范围是[0, 2^32)
Order uint32 `json:"order"`
// Deleted 标签组是否已经被删除,只在指定tag_id进行查询时返回
Deleted bool `json:"deleted"`
// Tag 标签组内的标签列表
Tag []ExternalContactCorpTag `json:"tag"`
}
ExternalContactCorpTagGroup 企业客户标签
type ExternalContactGroupChatTransferFailed ¶ added in v1.0.0
type ExternalContactGroupChatTransferFailed struct {
// ChatID 没能成功继承的群ID
ChatID string `json:"chat_id"`
// ErrCode 没能成功继承的群,错误码
ErrCode int `json:"errcode"`
// ErrMsg 没能成功继承的群,错误描述
ErrMsg string `json:"errmsg"`
}
ExternalContactGroupChatTransferFailed 离职成员的群再分配失败
type ExternalContactInfo ¶ added in v1.0.0
type ExternalContactInfo struct {
ExternalContact ExternalContact `json:"external_contact"`
FollowUser []FollowUser `json:"follow_user"`
}
type ExternalContactMarkTag ¶ added in v1.0.0
type ExternalContactMarkTag struct {
// UserID 添加外部联系人的userid
UserID string `json:"userid"`
// ExternalUserID 外部联系人userid
ExternalUserID string `json:"external_userid"`
// AddTag 要标记的标签列表
AddTag []string `json:"add_tag"`
// RemoveTag 要移除的标签列表
RemoveTag []string `json:"remove_tag"`
}
ExternalContactMarkTag 企业标记客户标签
type ExternalContactRemark ¶ added in v1.0.0
type ExternalContactRemark struct {
// Userid 企业成员的userid
Userid string `json:"userid"`
// ExternalUserid 外部联系人userid
ExternalUserid string `json:"external_userid"`
// Remark 此用户对外部联系人的备注,最多20个字符,remark,description,remark_company,remark_mobiles和remark_pic_mediaid不可同时为空。
Remark string `json:"remark"`
// Description 此用户对外部联系人的描述,最多150个字符
Description string `json:"description"`
// RemarkCompany 此用户对外部联系人备注的所属公司名称,最多20个字符,remark_company只在此外部联系人为微信用户时有效。
RemarkCompany string `json:"remark_company"`
// RemarkMobiles 此用户对外部联系人备注的手机号,如果填写了remark_mobiles,将会覆盖旧的备注手机号。如果要清除所有备注手机号,请在remark_mobiles填写一个空字符串(“”)。
RemarkMobiles []string `json:"remark_mobiles"`
// RemarkPicMediaid 备注图片的mediaid,remark_pic_mediaid可以通过素材管理接口获得。
RemarkPicMediaid string `json:"remark_pic_mediaid"`
}
ExternalContactRemark 客户备注信息
type ExternalContactTransferResult ¶ added in v1.0.0
type ExternalContactTransferResult struct {
// Status 接替状态, 1-接替完毕 2-等待接替 3-客户拒绝 4-接替成员客户达到上限 5-无接替记录
Status ExternalContactTransferStatus
// TakeoverTime 接替客户的时间,如果是等待接替状态,则为未来的自动接替时间
TakeoverTime time.Time
}
ExternalContactTransferResult 客户接替结果
type ExternalContactTransferStatus ¶ added in v1.0.0
type ExternalContactTransferStatus uint8
ExternalContactTransferStatus 客户接替结果状态
const ( // ExternalContactTransferStatusSuccess 1-接替完毕 ExternalContactTransferStatusSuccess ExternalContactTransferStatus = 1 // ExternalContactTransferStatusWait 2-等待接替 ExternalContactTransferStatusWait ExternalContactTransferStatus = 2 // ExternalContactTransferStatusRefused 3-客户拒绝 ExternalContactTransferStatusRefused ExternalContactTransferStatus = 3 // ExternalContactTransferStatusExhausted 4-接替成员客户达到上限 ExternalContactTransferStatusExhausted ExternalContactTransferStatus = 4 // ExternalContactTransferStatusNoData 5-无接替记录 ExternalContactTransferStatusNoData ExternalContactTransferStatus = 5 )
type ExternalContactUnassigned ¶ added in v1.0.0
type ExternalContactUnassigned struct {
// HandoverUserID 离职成员的userid
HandoverUserID string
// ExternalUserID 外部联系人userid
ExternalUserID string
// DemissionTime 成员离职时间
DemissionTime time.Time
}
ExternalContactUnassigned 离职成员的客户
type ExternalContactUnassignedList ¶ added in v1.0.0
type ExternalContactUnassignedList struct {
// Info 离职成员的客户
Info []ExternalContactUnassigned `json:"info"`
// IsLast 是否是最后一条记录
IsLast bool `json:"is_last"`
// NextCursor 分页查询游标,已经查完则返回空("")
NextCursor string `json:"next_cursor"`
}
ExternalContactUnassignedList 离职成员的客户列表
type ExternalProfile ¶ added in v1.0.0
type ExternalProfile struct {
// ExternalCorpName 企业简称
ExternalCorpName string `json:"external_corp_name"`
// ExternalAttr 属性列表,目前支持文本、网页、小程序三种类型
ExternalAttr []ExternalAttr `json:"external_attr"`
}
ExternalProfile 成员对外信息
type ExternalUserType ¶ added in v1.0.0
type ExternalUserType int
ExternalUserType 外部联系人的类型
1表示该外部联系人是微信用户 2表示该外部联系人是企业微信用户
const ( // ExternalUserTypeWeChat 微信用户 ExternalUserTypeWeChat ExternalUserType = 1 // ExternalUserTypeWorkWeChat 企业微信用户 ExternalUserTypeWorkWeChat ExternalUserType = 2 )
type FollowUser ¶ added in v1.0.0
type FollowUser struct {
// Userid 外部联系人的userid
Userid string `json:"userid"`
// Remark 该成员对此外部联系人的备注
Remark string `json:"remark"`
// Description 该成员对此外部联系人的描述
Description string `json:"description"`
// Createtime 该成员添加此外部联系人的时间
Createtime int `json:"createtime"`
// Tags 该成员添加此外部联系人所打标签
Tags []FollowUserTag `json:"tags"`
// RemarkCorpName 该成员对此客户备注的企业名称
RemarkCorpName string `json:"remark_corp_name"`
// RemarkMobiles 该成员对此客户备注的手机号码,第三方不可获取
RemarkMobiles []string `json:"remark_mobiles"`
// AddWay 该成员添加此客户的来源
AddWay FollowUserAddWay `json:"add_way"`
// State 企业自定义的state参数,用于区分客户具体是通过哪个「联系我」添加,由企业通过创建「联系我」方式指定
State string `json:"state"`
}
FollowUser 添加了外部联系人的企业成员
type FollowUserAddWay ¶ added in v1.0.0
type FollowUserAddWay int
FollowUserAddWay 该成员添加此客户的来源
具体含义详见[来源定义](https://work.weixin.qq.com/api/doc/90000/90135/92114#13878/%E6%9D%A5%E6%BA%90%E5%AE%9A%E4%B9%89)
const ( // 未知来源 FollowUserAddWayUnknown FollowUserAddWay = 0 // 扫描二维码 FollowUserAddWayQRCode FollowUserAddWay = 1 // 搜索手机号 FollowUserAddWayMobile FollowUserAddWay = 2 // 名片分享 FollowUserAddWayCard FollowUserAddWay = 3 // 群聊 FollowUserAddWayGroupChat FollowUserAddWay = 4 // 手机通讯录 FollowUserAddWayAddressBook FollowUserAddWay = 5 // 微信联系人 FollowUserAddWayWeChatContact FollowUserAddWay = 6 // 来自微信的添加好友申请 FollowUserAddWayWeChatFriendApply FollowUserAddWay = 7 // 安装第三方应用时自动添加的客服人员 FollowUserAddWayThirdParty FollowUserAddWay = 8 // 搜索邮箱 FollowUserAddWayEmail FollowUserAddWay = 9 FollowUserAddWayInternalShare FollowUserAddWay = 201 // 管理员/负责人分配 FollowUserAddWayAdmin FollowUserAddWay = 202 )
type FollowUserTag ¶ added in v1.0.0
type FollowUserTag struct {
// GroupName 该成员添加此外部联系人所打标签的分组名称(标签功能需要企业微信升级到2.7.5及以上版本)
GroupName string `json:"group_name"`
// TagName 该成员添加此外部联系人所打标签名称
TagName string `json:"tag_name"`
// Type 该成员添加此外部联系人所打标签类型, 1-企业设置, 2-用户自定义
Type FollowUserTagType `json:"type"`
}
FollowUserTag 该成员添加此外部联系人所打标签
type FollowUserTagType ¶ added in v1.0.0
type FollowUserTagType int
FollowUserTagType 该成员添加此外部联系人所打标签类型
1-企业设置 2-用户自定义
const ( // 企业设置 FollowUserTagTypeWork FollowUserTagType = 1 // 用户自定义 FollowUserTagTypeUser FollowUserTagType = 2 )
type HTTPHandler ¶ added in v1.0.0
type HTTPHandler struct {
// contains filtered or unexported fields
}
func NewHTTPHandler ¶ added in v1.0.0
func NewHTTPHandler( token string, encodingAESKey string, rxMessageHandler RxMessageHandler, ) (*HTTPHandler, error)
func (*HTTPHandler) ServeHTTP ¶ added in v1.0.0
func (h *HTTPHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request)
type ImageMessageExtras ¶ added in v1.0.0
type ImageMessageExtras interface {
// GetPicURL 返回图片消息的图片链接 URL。
GetPicURL() string
// GetMediaID 返回图片消息的图片媒体文件 ID。
//
// 可以调用【获取媒体文件】接口拉取,仅三天内有效。
GetMediaID() string
// contains filtered or unexported methods
}
ImageMessageExtras 图片消息的参数。
type JSCodeSession ¶ added in v1.0.0
type JSCodeSession struct {
CorpID string `json:"corpid"`
UserID string `json:"userid"`
SessionKey string `json:"session_key"`
}
JSCodeSession 临时登录凭证
type LinkMessageExtras ¶ added in v1.0.0
type LinkMessageExtras interface {
// GetTitle 返回链接消息的标题。
GetTitle() string
// GetDescription 返回链接消息的描述。
GetDescription() string
// GetURL 返回链接消息的跳转 URL。
GetURL() string
// GetPicURL 返回链接消息的封面缩略图 URL。
GetPicURL() string
// contains filtered or unexported methods
}
LinkMessageExtras 链接消息的参数。
type LocationMessageExtras ¶ added in v1.0.0
type LocationMessageExtras interface {
// GetLatitude 返回位置消息的纬度(角度值;北纬为正)。
GetLatitude() float64
// GetLongitude 返回位置消息的经度(角度值;东经为正)。
GetLongitude() float64
// GetScale 返回位置消息的地图缩放大小。
GetScale() int
// GetLabel 返回位置消息的地理位置信息。
GetLabel() string
// contains filtered or unexported methods
}
LocationMessageExtras 位置消息的参数。
type Media ¶
type Media struct {
// contains filtered or unexported fields
}
Media 欲上传的素材
NOTE: 由于 Go `mime/multipart` 包的实现细节原因, 暂时不开放 Content-Type 定制,全部传 `application/octet-stream`。 如有需求,请去 GitHub 提 issue。
func NewMediaFromBuffer ¶
NewMediaFromBuffer 从内存创建一个欲上传的素材对象
type MediaUploadResult ¶
type MediaUploadResult struct {
// Type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
Type string
// MediaID 媒体文件上传后获取的唯一标识,3天内有效
MediaID string
// CreatedAt 媒体文件上传时间戳
CreatedAt time.Time
}
MediaUploadResult 临时素材上传结果
type MessageType ¶ added in v1.0.0
type MessageType string
MessageType 消息类型
const MessageTypeEvent MessageType = "event"
MessageTypeEvent 事件消息
const MessageTypeImage MessageType = "image"
MessageTypeImage 图片消息
const MessageTypeLink MessageType = "link"
MessageTypeLink 链接消息
const MessageTypeLocation MessageType = "location"
MessageTypeLocation 位置消息
const MessageTypeText MessageType = "text"
MessageTypeText 文本消息
const MessageTypeVideo MessageType = "video"
MessageTypeVideo 视频消息
const MessageTypeVoice MessageType = "voice"
MessageTypeVoice 语音消息
type MsgAuditAgreeStatus ¶ added in v1.0.0
type MsgAuditAgreeStatus string
MsgAuditAgreeStatus 会话中外部成员的同意状态
type MsgAuditEdition ¶ added in v1.0.0
type MsgAuditEdition uint8
MsgAuditEdition 会话内容存档版本
const ( // MsgAuditEditionOffice 会话内容存档办公版 MsgAuditEditionOffice MsgAuditEdition = 1 // MsgAuditEditionService 会话内容存档服务版 MsgAuditEditionService MsgAuditEdition = 2 // MsgAuditEditionEnterprise 会话内容存档企业版 MsgAuditEditionEnterprise MsgAuditEdition = 3 )
type MsgAuditGroupChat ¶ added in v1.0.0
type MsgAuditGroupChat struct {
// Members roomid对应的群成员列表
Members []MsgAuditGroupChatMember
// RoomName roomid对应的群名称
RoomName string
// Creator roomid对应的群创建者,userid
Creator string
// RoomCreateTime roomid对应的群创建时间
RoomCreateTime time.Time
// Notice roomid对应的群公告
Notice string
}
MsgAuditGroupChat 获取会话内容存档内部群信息
type MsgAuditGroupChatMember ¶ added in v1.0.0
type MsgAuditGroupChatMember struct {
// MemberID roomid群成员的id,userid
MemberID int
// JoinTime roomid群成员的入群时间
JoinTime time.Time
}
MsgAuditGroupChatMember 获取会话内容存档内部群成员
type Recipient ¶
type Recipient struct {
// UserIDs 成员ID列表(消息接收者),最多支持1000个
UserIDs []string
// PartyIDs 部门ID列表,最多支持100个。
PartyIDs []string
// TagIDs 标签ID列表,最多支持100个
TagIDs []string
// ChatID 应用关联群聊ID,仅用于【发送消息到群聊会话】
ChatID string
}
Recipient 消息收件人定义
type RxMessage ¶ added in v1.0.0
type RxMessage struct {
// FromUserID 发送者的 UserID
FromUserID string
// SendTime 消息发送时间
SendTime time.Time
// MsgType 消息类型
MsgType MessageType
// MsgID 消息 ID
MsgID int64
// AgentID 企业应用 ID,可在应用的设置页面查看
AgentID int64
// Event 事件类型 MsgType为event存在
Event EventType
// ChangeType 变更类型 Event为change_external_contact存在
ChangeType ChangeType
// contains filtered or unexported fields
}
RxMessage 一条接收到的消息
func (*RxMessage) EventAddExternalContact ¶ added in v1.0.0
func (m *RxMessage) EventAddExternalContact() (EventAddExternalContact, bool)
EventAddExternalContact 如果消息为添加企业客户事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventAddHalfExternalContact ¶ added in v1.0.0
func (m *RxMessage) EventAddHalfExternalContact() (EventAddHalfExternalContact, bool)
EventAddHalfExternalContact 如果消息为外部联系人免验证添加成员事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventChangeExternalChat ¶ added in v1.0.0
func (m *RxMessage) EventChangeExternalChat() (EventChangeExternalChat, bool)
EventChangeExternalChat 如果消息为客户群变更事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventDelExternalContact ¶ added in v1.0.0
func (m *RxMessage) EventDelExternalContact() (EventDelExternalContact, bool)
EventDelExternalContact 如果消息为删除企业客户事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventDelFollowUser ¶ added in v1.0.0
func (m *RxMessage) EventDelFollowUser() (EventDelFollowUser, bool)
EventDelFollowUser 如果消息为删除跟进成员事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventEditExternalContact ¶ added in v1.0.0
func (m *RxMessage) EventEditExternalContact() (EventEditExternalContact, bool)
EventEditExternalContact 如果消息为编辑企业客户事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) EventTransferFail ¶ added in v1.0.0
func (m *RxMessage) EventTransferFail() (EventTransferFail, bool)
EventTransferFail 如果消息为客户接替失败事件,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Image ¶ added in v1.0.0
func (m *RxMessage) Image() (ImageMessageExtras, bool)
Image 如果消息为图片类型,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Link ¶ added in v1.0.0
func (m *RxMessage) Link() (LinkMessageExtras, bool)
Link 如果消息为链接类型,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Location ¶ added in v1.0.0
func (m *RxMessage) Location() (LocationMessageExtras, bool)
Location 如果消息为位置类型,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Text ¶ added in v1.0.0
func (m *RxMessage) Text() (TextMessageExtras, bool)
Text 如果消息为文本类型,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Video ¶ added in v1.0.0
func (m *RxMessage) Video() (VideoMessageExtras, bool)
Video 如果消息为视频类型,则拿出相应的消息参数,否则返回 nil, false
func (*RxMessage) Voice ¶ added in v1.0.0
func (m *RxMessage) Voice() (VoiceMessageExtras, bool)
Voice 如果消息为语音类型,则拿出相应的消息参数,否则返回 nil, false
type RxMessageHandler ¶ added in v1.0.0
type RxMessageHandler interface {
// OnIncomingMessage 一条消息到来时的回调。
OnIncomingMessage(msg *RxMessage) error
}
RxMessageHandler 用来接收消息的接口。
type TextMessageExtras ¶ added in v1.0.0
type TextMessageExtras interface {
// GetContent 返回文本消息的内容。
GetContent() string
// contains filtered or unexported methods
}
TextMessageExtras 文本消息的参数。
type UserDeptInfo ¶
type UserDeptInfo struct {
// DeptID 部门 ID
DeptID int64
// Order 部门内的排序值,默认为0,数值越大排序越前面
Order uint32
// IsLeader 在所在的部门内是否为上级
IsLeader bool
}
UserDeptInfo 用户部门信息
type UserGender ¶
type UserGender int
UserGender 用户性别
const ( // UserGenderUnspecified 性别未定义 UserGenderUnspecified UserGender = 0 // UserGenderMale 男性 UserGenderMale UserGender = 1 // UserGenderFemale 女性 UserGenderFemale UserGender = 2 )
type UserIdentityInfo ¶ added in v1.0.0
type UserIdentityInfo struct {
// UserID 成员UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员。如果是互联企业,则返回的UserId格式如:CorpId/userid
UserID string `json:"UserId"`
// OpenID 非企业成员的标识,对当前企业唯一。不超过64字节
OpenID string `json:"OpenId"`
// DeviceID 手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响)
DeviceID string `json:"DeviceId"`
}
UserIdentityInfo 访问用户身份信息
type UserInfo ¶
type UserInfo struct {
// UserID 成员UserID
//
// 对应管理端的账号,企业内必须唯一。不区分大小写,长度为1~64个字节
UserID string
// Name 成员名称
Name string
// Position 职务信息;第三方仅通讯录应用可获取
Position string
// Departments 成员所属部门信息
Departments []UserDeptInfo
// Mobile 手机号码;第三方仅通讯录应用可获取
Mobile string
// Gender 性别
Gender UserGender
// Email 邮箱;第三方仅通讯录应用可获取
Email string
// AvatarURL 头像 URL;第三方仅通讯录应用可获取
//
// NOTE:如果要获取小图将url最后的”/0”改成”/100”即可。
AvatarURL string
// Telephone 座机;第三方仅通讯录应用可获取
Telephone string
// IsEnabled 成员的启用状态
IsEnabled bool
// Alias 别名;第三方仅通讯录应用可获取
Alias string
// Status 成员激活状态
Status UserStatus
// QRCodeURL 员工个人二维码;第三方仅通讯录应用可获取
//
// 扫描可添加为外部联系人
QRCodeURL string
}
UserInfo 用户信息
type UserStatus ¶
type UserStatus int
UserStatus 用户激活信息
已激活代表已激活企业微信或已关注微工作台(原企业号)。 未激活代表既未激活企业微信又未关注微工作台(原企业号)。
const ( // UserStatusActivated 已激活 UserStatusActivated UserStatus = 1 // UserStatusDeactivated 已禁用 UserStatusDeactivated UserStatus = 2 // UserStatusUnactivated 未激活 UserStatusUnactivated UserStatus = 4 )
type VideoMessageExtras ¶ added in v1.0.0
type VideoMessageExtras interface {
// GetMediaID 返回视频消息的视频媒体文件 ID。
//
// 可以调用【获取媒体文件】接口拉取,仅三天内有效。
GetMediaID() string
// GetThumbMediaID 返回视频消息缩略图的媒体 ID。
//
// 可以调用【获取媒体文件】接口拉取,仅三天内有效。
GetThumbMediaID() string
// contains filtered or unexported methods
}
VideoMessageExtras 视频消息的参数。
type VoiceMessageExtras ¶ added in v1.0.0
type VoiceMessageExtras interface {
// GetMediaID 返回语音消息的语音媒体文件 ID。
//
// 可以调用【获取媒体文件】接口拉取,仅三天内有效。
GetMediaID() string
// GetFormat 返回语音消息的语音格式,如 "amr"、"speex" 等。
GetFormat() string
// contains filtered or unexported methods
}
VoiceMessageExtras 语音消息的参数。
type Workwx ¶
type Workwx struct {
// CorpID 企业 ID,必填
CorpID string
// contains filtered or unexported fields
}
Workwx 企业微信客户端
Example ¶
corpID := "your_corpid"
corpSecret := "your_corpsecret"
agentID := int64(1234567)
client := workwx.New(corpID)
// there're advanced options
_ = workwx.New(
corpID,
workwx.WithQYAPIHost("http://localhost:8888"),
workwx.WithHTTPClient(&http.Client{}),
)
// work with individual apps
app := client.WithApp(corpSecret, agentID)
app.SpawnAccessTokenRefresher()
// see other examples for more details
type WorkwxApp ¶
type WorkwxApp struct {
*Workwx
// CorpSecret 应用的凭证密钥,必填
CorpSecret string
// AgentID 应用 ID,必填
AgentID int64
// contains filtered or unexported fields
}
WorkwxApp 企业微信客户端(分应用)
func (*WorkwxApp) AddExternalContactCorpTag ¶ added in v1.0.0
func (c *WorkwxApp) AddExternalContactCorpTag(req ExternalContactCorpTagGroup) ([]ExternalContactCorpTagGroup, error)
AddExternalContactCorpTag 添加企业客户标签
func (*WorkwxApp) CheckMsgAuditRoomAgree ¶ added in v1.0.0
func (c *WorkwxApp) CheckMsgAuditRoomAgree(roomId string) ([]CheckMsgAuditRoomAgreeInfo, error)
CheckMsgAuditRoomAgree 获取会话同意情况(群聊)
func (*WorkwxApp) CheckMsgAuditSingleAgree ¶ added in v1.0.0
func (c *WorkwxApp) CheckMsgAuditSingleAgree(infos []CheckMsgAuditSingleAgreeUserInfo) ([]CheckMsgAuditSingleAgreeInfo, error)
CheckMsgAuditSingleAgree 获取会话同意情况(单聊)
func (*WorkwxApp) CreateAppchat ¶
CreateAppchat 创建群聊会话
func (*WorkwxApp) DelExternalContactCorpTag ¶ added in v1.0.0
DelExternalContactCorpTag 删除企业客户标签
func (*WorkwxApp) EditExternalContactCorpTag ¶ added in v1.0.0
EditExternalContactCorpTag 编辑企业客户标签
func (*WorkwxApp) GetAppchat ¶
GetAppchat 获取群聊会话
func (*WorkwxApp) GetExternalContact ¶ added in v1.0.0
func (c *WorkwxApp) GetExternalContact(externalUserid string) (*ExternalContactInfo, error)
GetExternalContact 获取客户详情
func (*WorkwxApp) GetJSAPITicket ¶ added in v1.0.0
GetJSAPITicket 获取 JSAPI_ticket
func (*WorkwxApp) GetJSAPITicketAgentConfig ¶ added in v1.0.0
GetJSAPITicketAgentConfig 获取 JSAPI_ticket_agent_config
func (*WorkwxApp) GetMsgAuditGroupChat ¶ added in v1.0.0
func (c *WorkwxApp) GetMsgAuditGroupChat(roomID string) (*MsgAuditGroupChat, error)
GetMsgAuditGroupChat 获取会话内容存档内部群信息
func (*WorkwxApp) GetTransferExternalContactResult ¶ added in v1.0.0
func (c *WorkwxApp) GetTransferExternalContactResult(externalUserID, handoverUserID, takeoverUserID string) (*ExternalContactTransferResult, error)
GetTransferExternalContactResult 查询客户接替结果
func (*WorkwxApp) GetUserIDByMobile ¶ added in v1.0.0
GetUserIDByMobile 通过手机号获取 userid
func (*WorkwxApp) GetUserInfoByCode ¶ added in v1.0.0
func (c *WorkwxApp) GetUserInfoByCode(code string) (*UserIdentityInfo, error)
GetUserInfoByCode 获取访问用户身份,根据code获取成员信息
func (*WorkwxApp) JSCode2Session ¶ added in v1.0.0
func (c *WorkwxApp) JSCode2Session(jscode string) (*JSCodeSession, error)
JSCode2Session 临时登录凭证校验
func (*WorkwxApp) ListAllDepts ¶
ListAllDepts 获取全量组织架构。
func (*WorkwxApp) ListExternalContact ¶ added in v1.0.0
ListExternalContact 获取客户列表
func (*WorkwxApp) ListExternalContactCorpTags ¶ added in v1.0.0
func (c *WorkwxApp) ListExternalContactCorpTags(tagIDs ...string) ([]ExternalContactCorpTagGroup, error)
ListExternalContactCorpTags 获取企业标签库
func (*WorkwxApp) ListMsgAuditPermitUser ¶ added in v1.0.0
func (c *WorkwxApp) ListMsgAuditPermitUser(msgAuditEdition MsgAuditEdition) ([]string, error)
ListMsgAuditPermitUser 获取会话内容存档开启成员列表
func (*WorkwxApp) ListUnassignedExternalContact ¶ added in v1.0.0
func (c *WorkwxApp) ListUnassignedExternalContact(pageID, pageSize uint32, cursor string) (*ExternalContactUnassignedList, error)
ListUnassignedExternalContact 获取离职成员的客户列表
func (*WorkwxApp) ListUsersByDeptID ¶
ListUsersByDeptID 获取部门成员详情
func (*WorkwxApp) MarkExternalContactTag ¶ added in v1.0.0
func (c *WorkwxApp) MarkExternalContactTag(userID, externalUserID string, addTag, removeTag []string) error
MarkExternalContactTag 标记客户企业标签
func (*WorkwxApp) RemarkExternalContact ¶ added in v1.0.0
func (c *WorkwxApp) RemarkExternalContact(req *ExternalContactRemark) error
RemarkExternalContact 修改客户备注信息
func (*WorkwxApp) SendFileMessage ¶
SendFileMessage 发送文件消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendImageMessage ¶
SendImageMessage 发送图片消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendMPNewsMessage ¶
func (c *WorkwxApp) SendMPNewsMessage( recipient *Recipient, title string, thumbMediaID string, author string, sourceContentURL string, content string, digest string, isSafe bool, ) error
SendMPNewsMessage 发送 mpnews 类型的图文消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendMarkdownMessage ¶
SendMarkdownMessage 发送 Markdown 消息
仅支持 Markdown 的子集,详见[官方文档](https://work.weixin.qq.com/api/doc#90002/90151/90854/%E6%94%AF%E6%8C%81%E7%9A%84markdown%E8%AF%AD%E6%B3%95)。
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendNewsMessage ¶
func (c *WorkwxApp) SendNewsMessage( recipient *Recipient, title string, description string, url string, picURL string, isSafe bool, ) error
SendNewsMessage 发送图文消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendTextCardMessage ¶
func (c *WorkwxApp) SendTextCardMessage( recipient *Recipient, title string, description string, url string, buttonText string, isSafe bool, ) error
SendTextCardMessage 发送文本卡片消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendTextMessage ¶
SendTextMessage 发送文本消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
Example ¶
corpID := "your_corpid"
corpSecret := "your_corpsecret"
agentID := int64(1234567)
client := workwx.New(corpID)
app := client.WithApp(corpSecret, agentID)
// preferably do this at app initialization
app.SpawnAccessTokenRefresher()
// send to user(s)
to1 := workwx.Recipient{
UserIDs: []string{"testuser"},
}
_ = app.SendTextMessage(&to1, "send to user(s)", false)
// "safe" message
to2 := workwx.Recipient{
UserIDs: []string{"testuser"},
}
_ = app.SendTextMessage(&to2, "safe message", true)
// send to party(parties)
to3 := workwx.Recipient{
PartyIDs: []string{"testdept"},
}
_ = app.SendTextMessage(&to3, "send to party(parties)", false)
// send to tag(s)
to4 := workwx.Recipient{
TagIDs: []string{"testtag"},
}
_ = app.SendTextMessage(&to4, "send to tag(s)", false)
// send to chatid
to5 := workwx.Recipient{
ChatID: "testchat",
}
_ = app.SendTextMessage(&to5, "send to chatid", false)
func (*WorkwxApp) SendVideoMessage ¶
func (c *WorkwxApp) SendVideoMessage( recipient *Recipient, mediaID string, description string, title string, isSafe bool, ) error
SendVideoMessage 发送视频消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SendVoiceMessage ¶
SendVoiceMessage 发送语音消息
收件人参数如果仅设置了 `ChatID` 字段,则为【发送消息到群聊会话】接口调用; 否则为单纯的【发送应用消息】接口调用。
func (*WorkwxApp) SpawnAccessTokenRefresher ¶
func (c *WorkwxApp) SpawnAccessTokenRefresher()
SpawnAccessTokenRefresher 启动该 app 的 access token 刷新 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) SpawnAccessTokenRefresherWithContext ¶ added in v1.0.0
SpawnAccessTokenRefresherWithContext 启动该 app 的 access token 刷新 goroutine 可以通过 context cancellation 停止此 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) SpawnJSAPITicketAgentConfigRefresher ¶ added in v1.0.0
func (c *WorkwxApp) SpawnJSAPITicketAgentConfigRefresher()
SpawnJSAPITicketAgentConfigRefresher 启动该 app 的 JSAPI_ticket_agent_config 刷新 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) SpawnJSAPITicketAgentConfigRefresherWithContext ¶ added in v1.0.0
SpawnJSAPITicketAgentConfigRefresherWithContext 启动该 app 的 JSAPI_ticket_agent_config 刷新 goroutine 可以通过 context cancellation 停止此 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) SpawnJSAPITicketRefresher ¶ added in v1.0.0
func (c *WorkwxApp) SpawnJSAPITicketRefresher()
SpawnJSAPITicketRefresher 启动该 app 的 JSAPI_ticket 刷新 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) SpawnJSAPITicketRefresherWithContext ¶ added in v1.0.0
SpawnJSAPITicketRefresherWithContext 启动该 app 的 JSAPI_ticket 刷新 goroutine 可以通过 context cancellation 停止此 goroutine
NOTE: 该 goroutine 本身没有 keep-alive 逻辑,需要自助保活
func (*WorkwxApp) TransferExternalContact ¶ added in v1.0.0
func (c *WorkwxApp) TransferExternalContact(externalUserID, handoverUserID, takeoverUserID, transferSuccessMsg string) error
TransferExternalContact 分配成员的客户
func (*WorkwxApp) TransferGroupChatExternalContact ¶ added in v1.0.0
func (c *WorkwxApp) TransferGroupChatExternalContact(chatIDList []string, newOwner string) ([]ExternalContactGroupChatTransferFailed, error)
TransferGroupChatExternalContact 离职成员的群再分配
func (*WorkwxApp) UploadPermanentImageMedia ¶
UploadPermanentImageMedia 上传永久图片素材
func (*WorkwxApp) UploadTempFileMedia ¶
func (c *WorkwxApp) UploadTempFileMedia(media *Media) (*MediaUploadResult, error)
UploadTempFileMedia 上传临时文件素材
func (*WorkwxApp) UploadTempImageMedia ¶
func (c *WorkwxApp) UploadTempImageMedia(media *Media) (*MediaUploadResult, error)
UploadTempImageMedia 上传临时图片素材
func (*WorkwxApp) UploadTempVideoMedia ¶
func (c *WorkwxApp) UploadTempVideoMedia(media *Media) (*MediaUploadResult, error)
UploadTempVideoMedia 上传临时视频素材
func (*WorkwxApp) UploadTempVoiceMedia ¶
func (c *WorkwxApp) UploadTempVoiceMedia(media *Media) (*MediaUploadResult, error)
UploadTempVoiceMedia 上传临时语音素材
type WorkwxClientError ¶ added in v1.0.0
type WorkwxClientError struct {
// Code 错误码,0表示成功,非0表示调用失败。
//
// 开发者需根据errcode是否为0判断是否调用成功(errcode意义请见全局错误码)。
Code errcodes.ErrCode
// Msg 错误信息,调用失败会有相关的错误信息返回。
//
// 仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据。
Msg string
}
WorkwxClientError 企业微信客户端 SDK 的响应错误
func (*WorkwxClientError) Error ¶ added in v1.0.0
func (e *WorkwxClientError) Error() string
Source Files
¶
- apis.md.go
- appchat.go
- chat_info.md.go
- client.go
- client_options.go
- dept_info.go
- dept_info.md.go
- dummy_for_generate.go
- errors.go
- external_contact.go
- external_contact.md.go
- media.go
- media_api.go
- message.go
- models.go
- msg_audit.go
- recipient.go
- rx.go
- rx_msg.go
- rx_msg.md.go
- rx_msg_extras.go
- token.go
- traits.go
- user_info.go
- user_info.md.go
- user_info_helper.go