You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
2.1 KiB

package payload
import (
"fmt"
)
// AccessToken 获取企业内部应用的access_token
// https://developers.dingtalk.com/document/app/obtain-orgapp-token
type AccessToken struct {
Response
// Expires 过期时间
Expires int16 `json:"expires_in"`
// Create 创建时间
Create int64 `json:"create"`
// Token
Token string `json:"access_token"`
}
// CreatedAt is when the access token is generated
func (token *AccessToken) CreatedAt() int64 {
return token.Create
}
// ExpiresIn is how soon the access token is expired
func (token *AccessToken) ExpiresIn() int16 {
return token.Expires
}
type JsApiTicket struct {
Response
// Expires 过期时间
Expires int16 `json:"expires_in"`
// Create 创建时间
Create int64 `json:"create"`
// Ticket 生成的临时jsapi_ticket。
Ticket string `json:"ticket"`
}
// CreatedAt is when the access token is generated
func (token *JsApiTicket) CreatedAt() int64 {
return token.Create
}
// ExpiresIn is how soon the access token is expired
func (token *JsApiTicket) ExpiresIn() int16 {
return token.Expires
}
const (
ActionGetUserAuthToken = "authorization_code"
ActionRefreshAuthToken = "refresh_token"
)
type UserAccessToken struct {
ClientId string `json:"clientId,omitempty"`
ClientSecret string `json:"clientSecret,omitempty"`
Code string `json:"code,omitempty"`
RefreshToken string `json:"refreshToken,omitempty"`
GrantType string `json:"grantType,omitempty"`
}
func NewUserAuthToken(authCode string) *UserAccessToken {
return &UserAccessToken{
Code: authCode,
GrantType: ActionGetUserAuthToken,
}
}
type UserAccessTokenResponse struct {
AccessToken string `json:"accessToken,omitempty"`
RefreshToken string `json:"refreshToken,omitempty"`
ExpireIn int `json:"expireIn,omitempty"`
CorpId string `json:"corpId,omitempty"`
Code string `json:"code,omitempty"`
Message string `json:"message,omitempty"`
RequestId string `json:"requestid,omitempty"`
}
func (u UserAccessTokenResponse) CheckError() (err error) {
if u.Code != "" {
err = fmt.Errorf("code:'%s', msg:%s, requestId: %s", u.Code, u.Message, u.RequestId)
}
return
}