天天看点

个推获取token

package getui

import (
    "encoding/json"
    "gugegin/tools"
    "log"
    "strings"
)

type Token struct {
    Sign      string
    Timestamp string
    Appkey    string
}
type Data struct {
    Expire_time string
    Token       string
}
type TokenResult struct {
    Code int64
    Msg  string
    Data Data
}

//ObtainToken 获得token
func ObtainToken() {
    url := BASEURL + "/auth"
    tiu := tools.TimeUnixMilli()
    tk := Token{
        Sign:      tools.Sha265Hash(APPKEY + tiu + MASTERSECRET), //格式: sha256(appkey+timestamp+mastersecret)
        Timestamp: tiu,
        Appkey:    APPKEY,
    }
    reqBody := tools.StructToJSON(tk)
    reqBody = strings.Replace(reqBody, "S", "s", 1)
    reqBody = strings.Replace(reqBody, "T", "t", 1)
    reqBody = strings.Replace(reqBody, "A", "a", 1)
    s := tools.ClientPost(url, "application/json;charset=utf-8", strings.NewReader(reqBody))
    log.Println("--------获取推送token----s------", s)
    tr := TokenResult{}
    err := json.Unmarshal([]byte(s), &tr)
    if err != nil {
        log.Println(err)
    }
    TokenValue = tr.Data.Token
    log.Println("--------获取推送token----------", TokenValue)
}