1
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// 通讯录
|
||||
func New(corpId, corpSecret string, config ...*platformapi.APIConfig) *API {
|
||||
curConfig := platformapi.DefAPIConfig
|
||||
if len(config) > 0 {
|
||||
@@ -28,9 +29,26 @@ func New(corpId, corpSecret string, config ...*platformapi.APIConfig) *API {
|
||||
}
|
||||
}
|
||||
|
||||
// 会话
|
||||
func NewMin(corpId, corpSecret string, config ...*platformapi.APIConfig) *API {
|
||||
curConfig := platformapi.DefAPIConfig
|
||||
if len(config) > 0 {
|
||||
curConfig = *config[0]
|
||||
}
|
||||
|
||||
return &API{
|
||||
corpId: corpId,
|
||||
corpSecret: corpSecret,
|
||||
locker: sync.RWMutex{},
|
||||
client: &http.Client{Timeout: curConfig.ClientTimeout},
|
||||
config: &curConfig,
|
||||
}
|
||||
}
|
||||
|
||||
// 获取token
|
||||
type EnterpriseToken struct {
|
||||
PublicCode
|
||||
ErrCode int `json:"errcode"` // 错误码
|
||||
ErrMsg string `json:"errmsg"` // 错误消息
|
||||
AccessToken string `json:"access_token"` // 权限说明
|
||||
ExpiresIn int64 `json:"expires_in"` // 过期时间
|
||||
}
|
||||
@@ -72,19 +90,17 @@ func (a *API) GetAccessToken() (tokenInfo *EnterpriseToken, err error) {
|
||||
|
||||
// 数据发送
|
||||
func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string]interface{}) (retVal map[string]interface{}, err error) {
|
||||
bizParams["access_token"] = a.accessToken
|
||||
data, err := json.Marshal(bizParams) // 序列化
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 全路径请求参数
|
||||
fullURL := utils.GenerateGetURL(baseUrl, actionApi, nil)
|
||||
|
||||
// 发送请求
|
||||
sendUrl := func() *http.Request {
|
||||
var request *http.Request
|
||||
if http.MethodPost == method {
|
||||
// 全路径请求参数
|
||||
fullURL := utils.GenerateGetURL(baseUrl, actionApi, map[string]interface{}{"access_token": a.accessToken})
|
||||
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(string(data)))
|
||||
} else {
|
||||
request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(baseUrl, actionApi, bizParams), nil)
|
||||
@@ -114,8 +130,9 @@ func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string]
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
// 检查token是否应该更新
|
||||
func (a *API) CheckAccessTokenExpiresIn() {
|
||||
if a.expiresIn == 0 || a.expiresIn <= time.Now().Unix() {
|
||||
if a.expiresIn == 0 || a.expiresIn <= time.Now().Unix() || a.accessToken == "" {
|
||||
a.GetAccessToken()
|
||||
}
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user