This commit is contained in:
邹宗楠
2022-08-31 16:47:41 +08:00
parent 78f0183730
commit 97a83f1c2f
11 changed files with 1170 additions and 6 deletions

View File

@@ -30,6 +30,7 @@ const (
yilianyunTokenExpires = 30 * 24 * 3600 * time.Second
pushTokenExpires = 7200 * time.Second
fnTokenExpires = 1 * time.Hour
tiktokTokenExpires = 14 * 24 * 3600 * time.Second
maxRefreshGap = 5 * 60 * time.Second
errRefreshGap = 10 * time.Second
@@ -470,3 +471,50 @@ func getWeimobTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo
}
return tokenInfo
}
// RefreshTiktokToken 刷新抖店token
func RefreshTiktokToken() (err error) {
if api.TiktokStore != nil {
err = RefreshConfig("tiktok", tiktokTokenExpires, func() (token string, expireTimeStr string, refreshToken string) {
curConfig := &legacymodel.Config{
Thirdparty: "tiktok",
}
if err := orm.NewOrm().Read(curConfig, "Thirdparty"); err != nil {
globals.SugarLogger.Errorf("RefreshTiktokToken RefreshToken failed with error:%v", err)
}
if curConfig.RefreshToken == "" {
if tokenInfo, err := api.TiktokStore.CreateToken(curConfig.Token); err != nil {
globals.SugarLogger.Errorf("tiktok store get token err:%v", err)
} else {
token = tokenInfo.AccessToken
refreshToken = tokenInfo.RefreshToken
expireTimeStr = time.Unix(tokenInfo.ExpiresIn, 0).Format("2006-01-02 15:04:05")
}
} else {
expireIn, _ := time.Parse("2006-01-02 15:04:05", curConfig.Date)
if expireIn.Unix() < time.Now().Unix() {
api.TiktokStore.SetToken(curConfig.Token)
api.TiktokStore.SetRefreshToken(curConfig.RefreshToken)
if tokenInfo, err := api.TiktokStore.RefreshToken(); err == nil {
token = tokenInfo.AccessToken
refreshToken = tokenInfo.RefreshToken
expireTimeStr = time.Unix(tokenInfo.ExpiresIn, 0).Format("2006-01-02 15:04:05")
} else {
globals.SugarLogger.Errorf("RefreshTiktokToken RefreshToken failed with error:%v", err)
}
}
}
sql := `UPDATE config SET token = ?,refresh_token = ?,data = ? WHERE thirdparty = ?`
dao.ExecuteSQL(dao.GetDB(), sql, []interface{}{
token, refreshToken, expireTimeStr, "tiktok",
})
return token, expireTimeStr, refreshToken
}, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshFnToken setter value:[%s],[%s]", value, v2)
api.TiktokStore.SetToken(value)
api.TiktokStore.SetRefreshToken(v2)
})
}
return err
}