Files
baseapi/platformapi/tiktok/tiktok_token.go
2025-11-21 09:09:09 +08:00

63 lines
2.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package tiktok
import (
"errors"
"git.rosy.net.cn/baseapi/utils"
)
// 获取抖音登录授权2
func (a *API) GetTiktokOauth(code string) (*TiktokOauthResone, error) {
tokenReq := make(map[string]interface{}, 3)
tokenReq["appid"] = a.GetAppID()
tokenReq["code"] = code
tokenReq["secret"] = a.GetSecret()
tokenReq["anonymous_code"] = ""
result, err := a.AccessAPI2(GetTiktokOauth, tokenReq)
if err != nil {
return nil, err
}
oauthAccessToken := &TiktokOauthResone{}
if err := utils.Map2StructByJson(result, oauthAccessToken, false); err != nil {
return nil, err
}
if oauthAccessToken.ErrNo != 0 {
return nil, errors.New(oauthAccessToken.ErrTips)
}
return oauthAccessToken, nil
}
// OauthRefreshTokenResData 刷新access_token
type OauthRefreshTokenResData struct {
AccessToken string `json:"access_token"` // 接口调用凭证
Scope string `json:"scope"` // 用户授权的作用域
ExpiresIn uint64 `json:"expires_in"` // 过期时间,单位(秒)
OpenId string `json:"open_id"` // 当前应用下,授权用户唯一标识
RefreshToken string `json:"refresh_token"` // 用户刷新
DYError
}
// OauthRefreshTokenRes 刷新access_token
type OauthRefreshTokenRes struct {
Data OauthRefreshTokenResData `json:"data"`
Message string `json:"message"`
}
// 刷新用户Refresh token
func (a *API) RefreshToken(refreshToken string) (*OauthRefreshTokenRes, error) {
tokenReq := make(map[string]interface{}, 2)
tokenReq["client_key"] = a.clientKey
tokenReq["refresh_token"] = refreshToken
// 通过旧的refresh_token获取新的refresh_token调用后旧refresh_token会失效新refresh_token有30天有效期。最多只能获取5次新的refresh_token5次过后需要用户重新授权。
result, err := a.AccessAPI2(BaseURL, tokenReq)
if err != nil {
return nil, err
}
oauthRefreshToken := &OauthRefreshTokenRes{}
if err := utils.Map2StructByJson(result, oauthRefreshToken, false); err != nil {
return nil, err
}
return oauthRefreshToken, nil
}