forked from esap/wechat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
corp.go
58 lines (53 loc) · 1.4 KB
/
corp.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package wechat
import (
"encoding/base64"
"time"
)
// WXAPI_ENT 企业号接口
const (
WXAPI_ENT = "https://qyapi.weixin.qq.com/cgi-bin/"
WXAPI_TOKEN_ENT = WXAPI_ENT + "gettoken?corpid=%s&corpsecret=%s"
WXAPI_MSG_ENT = WXAPI_ENT + "message/send?access_token="
WXAPI_JSAPI_ENT = WXAPI_ENT + "get_jsapi_ticket?access_token="
)
// SetEnt 初始化企业号,设置token,corpid,secrat,aesKey
func (s *Server) SetEnt(token, appId, secret, aeskey string, agentId ...int) (err error) {
s.Token, s.AppId, s.Secret, s.SafeMode, s.EntMode = token, appId, secret, true, true
if len(agentId) > 0 {
s.AgentId = agentId[0]
}
s.RootUrl = WXAPI_ENT
s.MsgUrl = WXAPI_MSG_ENT
s.TokenUrl = WXAPI_TOKEN_ENT
s.JsApi = WXAPI_JSAPI_ENT
if aeskey != "" {
s.AesKey, err = base64.StdEncoding.DecodeString(aeskey + "=")
if err != nil {
return
}
}
s.FetchUserList()
return nil
}
// SetEnt 初始化企业号,设置token,corpid,secrat,aesKey
func SetEnt(token, appId, secret, aeskey string, agentId ...int) (err error) {
return std.SetEnt(token, appId, secret, aeskey, agentId...)
}
// FetchUserList 定期获取AccessToken
func (s *Server) FetchUserList() {
i := 0
go func() {
for {
if s.SyncDeptList() == nil {
if s.SyncUserList() != nil && i < 2 {
i++
Println("尝试再次获取用户列表(", i, ")")
continue
}
i = 0
}
s.SyncTagList()
time.Sleep(FetchDelay)
}
}()
}