diff --git a/control.go b/control.go index bc993d6..b4fa4d8 100644 --- a/control.go +++ b/control.go @@ -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) diff --git a/outlook.go b/outlook.go index 9f04a0d..02e8703 100644 --- a/outlook.go +++ b/outlook.go @@ -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