Documentation ¶
Overview ¶
企业微信开发 SDK
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( WXServerUrl = "https://qyapi.weixin.qq.com" // 微信 api 服务器地址 UserAgent = "cvblood/qywxapi" ErrorAccessToken = errors.New("access token error") ErrorSystemBusy = errors.New("system busy") )
Functions ¶
func NoticeAccessTokenExpire ¶
NoticeAccessTokenExpire 只需将本地存储的 access_token 删除,即完成了 access_token 已过期的 主动通知
retry 请求的时候,会发现本地没有 access_token ,从而触发refresh
Types ¶
type AccessToken ¶
type AccessToken struct { Cache cachego.Cache GetAccessTokenHandler GetAccessTokenFunc NoticeAccessTokenExpireHandler NoticeAccessTokenExpireFunc }
AccessToken 管理器 处理缓存 和 刷新 逻辑
type App ¶
type App struct { Config AppConfig AccessToken AccessToken Client Client Server Server Corporation *Corporation }
应用
func (*App) SetAccessTokenCacheDriver ¶
SetAccessTokenCacheDriver 设置 AccessToken 缓存器 默认为文件缓存:目录 os.TempDir()
驱动接口类型 为 cachego.Cache
func (*App) SetGetAccessTokenHandler ¶
func (app *App) SetGetAccessTokenHandler(f GetAccessTokenFunc)
SetGetAccessTokenHandler 设置 AccessToken 获取方法。默认 从本地缓存获取(过期从微信接口刷新)
如果有多实例服务,可以设置为 Redis 或 RPC 等中控服务器 获取 就可以避免 AccessToken 刷新冲突
func (*App) SetNoticeAccessTokenExpireHandler ¶
func (app *App) SetNoticeAccessTokenExpireHandler(f NoticeAccessTokenExpireFunc)
SetNoticeAccessTokenExpireHandler 设置 AccessToken 过期 通知
框架提供的默认机制是 删除本地缓存的 access_token,那么 retry 的时候 会触发 刷新
如果有多实例服务,可以设置为 通知 中控服务器 去刷新
type Client ¶
type Client struct {
Ctx *App
}
HttpClient 用于向微信接口发送请求
type Corporation ¶
Corporation 企业实例
func (*Corporation) NewApp ¶
func (corporation *Corporation) NewApp(config AppConfig) (app *App)
创建应用实例
func (*Corporation) SetLogger ¶
func (corporation *Corporation) SetLogger(logger *log.Logger)
SetLogger 日志记录 默认输出到 os.Stdout
可以新建 logger 输出到指定文件
如果不想开启日志,可以 SetLogger(nil)
Example ¶
package main import ( "log" "os" "github.com/cvblood/qywxapi/corporation" ) func main() { var Ctx *corporation.Corporation // 输出日志到控制台 Ctx.SetLogger(log.New(os.Stdout, "[corporation ]", log.LstdFlags)) // 记录日志到指定文件 logFile, _ := os.OpenFile("/path/to/file", os.O_WRONLY, 0644) Ctx.SetLogger(log.New(logFile, "[corporation ]", log.LstdFlags)) // 关闭日志 Ctx.SetLogger(nil) }
Output:
type GetAccessTokenFunc ¶
GetAccessTokenFunc 获取 access_token 方法接口
type NoticeAccessTokenExpireFunc ¶
NoticeAccessTokenExpireFunc 通知中控 刷新 access_token
type Server ¶
type Server struct {
Ctx *App
}
响应微信请求 或 推送消息/事件 的服务器
func (*Server) EchoStr ¶
func (s *Server) EchoStr(writer http.ResponseWriter, request *http.Request)
EchoStr 服务器接口校验
msg_signature=ASDFQWEXZCVAQFASDFASDFSS ×tamp=13500001234 &nonce=123412323 &echostr=ENCRYPT_STR
Directories ¶
Path | Synopsis |
---|---|
apis
|
|
app
Package app 应用管理
|
Package app 应用管理 |
contact/async_batch
Package async_batch 通讯录管理/异步批量接口
|
Package async_batch 通讯录管理/异步批量接口 |
contact/department
Package department 通讯录管理/部门管理
|
Package department 通讯录管理/部门管理 |
contact/linked_corp
Package linked_corp 通讯录管理/互联企业
|
Package linked_corp 通讯录管理/互联企业 |
contact/tag
Package tag 通讯录管理/标签管理
|
Package tag 通讯录管理/标签管理 |
contact/user
Package user 通讯录管理/成员管理
|
Package user 通讯录管理/成员管理 |
corp_group
Package corp_group 企业互联
|
Package corp_group 企业互联 |
efficiency/calendar
Package calendar 效率工具/日程
|
Package calendar 效率工具/日程 |
efficiency/call
Package call 效率工具/公费电话
|
Package call 效率工具/公费电话 |
efficiency/living
Package living 效率工具/直播
|
Package living 效率工具/直播 |
efficiency/meeting
Package meeting 效率工具/会议
|
Package meeting 效率工具/会议 |
efficiency/wedrive
Package wedrive 效率工具/微盘
|
Package wedrive 效率工具/微盘 |
external_contact/customer
Package customer 客户联系/客户管理
|
Package customer 客户联系/客户管理 |
external_contact/customer_assign
Package customer_assign 客户联系/客户分配
|
Package customer_assign 客户联系/客户分配 |
external_contact/customer_group
Package customer_group 客户联系/客户群管理
|
Package customer_group 客户联系/客户群管理 |
external_contact/customer_message
Package customer_message 客户联系/消息推送
|
Package customer_message 客户联系/消息推送 |
external_contact/customer_moment
Package customer_moment 客户联系/客户朋友圈
|
Package customer_moment 客户联系/客户朋友圈 |
external_contact/customer_service
Package customer_service 客户联系/企业服务人员管理
|
Package customer_service 客户联系/企业服务人员管理 |
external_contact/customer_stat
Package customer_stat 客户联系/统计管理
|
Package customer_stat 客户联系/统计管理 |
external_contact/customer_tag
Package customer_tag 客户联系/客户标签管理
|
Package customer_tag 客户联系/客户标签管理 |
gov/patrol_report
Package patrol_report 政民沟通/巡查上报
|
Package patrol_report 政民沟通/巡查上报 |
gov/resident_report
Package resident_report 政民沟通/居民上报
|
Package resident_report 政民沟通/居民上报 |
invoice
Package invoice 电子发票
|
Package invoice 电子发票 |
material
Package material 素材管理
|
Package material 素材管理 |
message
Package message 消息推送
|
Package message 消息推送 |
msgaudit
Package msgaudit 会话内容存档
|
Package msgaudit 会话内容存档 |
oa/approve
Package approve OA/审批
|
Package approve OA/审批 |
oa/checkin
Package checkin OA/打卡
|
Package checkin OA/打卡 |
oa/custom_app
Package custom_app OA/自建应用
|
Package custom_app OA/自建应用 |
oa/journal
Package journal OA/汇报
|
Package journal OA/汇报 |
oa/meeting_room
Package meeting_room OA/会议室
|
Package meeting_room OA/会议室 |
oa/pstncc
Package pstncc OA/紧急通知应用
|
Package pstncc OA/紧急通知应用 |
payment
Package payment 企业支付
|
Package payment 企业支付 |
school
Package school 家校沟通
|
Package school 家校沟通 |
school/department
Package department 家校沟通/部门管理
|
Package department 家校沟通/部门管理 |
school/user
Package user 家校沟通/学生与家长管理
|
Package user 家校沟通/学生与家长管理 |
school_app/health
Package health 家校应用/健康上报
|
Package health 家校应用/健康上报 |
school_app/health_qrcode
Package health_qrcode 家校应用/复学码
|
Package health_qrcode 家校应用/复学码 |
Package test 模拟微信服务器 测试
|
Package test 模拟微信服务器 测试 |
type
|
|