fix newRefreshToken

This commit is contained in:
iyear 2020-07-05 21:13:43 +08:00
parent c4e44d7249
commit e15e57d080
2 changed files with 9 additions and 8 deletions

View File

@ -104,7 +104,7 @@ func SignTask() {
//签到任务
for _, u := range data {
pre := "您的账户: " + u.alias + "\n在任务执行时出现了错误!\n错误:"
access, err := MSGetToken(u.refreshToken, u.clientId, u.clientSecret)
access, newRefreshToken, err := MSGetToken(u.refreshToken, u.clientId, u.clientSecret)
chat, _ := bot.ChatByID(strconv.FormatInt(u.tgId, 10))
//生成解绑按钮
@ -130,6 +130,7 @@ func SignTask() {
continue
}
u.uptime = time.Now().Unix()
u.refreshToken = newRefreshToken
if ok, err := UpdateData(u); !ok {
logger.Println(u.msId+" ", err)
bot.Send(chat, pre+err.Error(), tmpBtn)

View File

@ -60,8 +60,8 @@ func MSFirGetToken(code, cid, cse string) (access string, refresh string, Error
return "", "", errors.New(string(content))
}
//return access_token
func MSGetToken(refreshtoken, cid, cse string) (access string, Error error) {
//return access_token and new refresh token
func MSGetToken(refreshtoken, cid, cse string) (access string, newRefreshToken string, Error error) {
var r http.Request
client := &http.Client{}
r.ParseForm()
@ -76,25 +76,25 @@ func MSGetToken(refreshtoken, cid, cse string) (access string, Error error) {
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
if err != nil {
logger.Println(err)
return "", err
return "", "", err
}
resp, err := client.Do(req)
if err != nil {
logger.Println(err)
return "", err
return "", "", err
}
defer resp.Body.Close()
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Println(err)
return "", err
return "", "", err
}
//fmt.Println(string(content))
//fmt.Println(gjson.Get(string(content), "access_token").String())
if gjson.Get(string(content), "token_type").String() == "Bearer" {
return gjson.Get(string(content), "access_token").String(), nil
return gjson.Get(string(content), "access_token").String(), gjson.Get(string(content), "refresh_token").String(), nil
}
return "", errors.New(string(content))
return "", "", errors.New(string(content))
}
//Get User's Information