Skip to content

Commit

Permalink
增加错误反馈
Browse files Browse the repository at this point in the history
  • Loading branch information
iyear committed Apr 8, 2020
1 parent d90cd58 commit a3cc759
Showing 1 changed file with 41 additions and 22 deletions.
63 changes: 41 additions & 22 deletions outlook.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"errors"
"github.com/tidwall/gjson"
"io/ioutil"
"net/http"
Expand All @@ -26,7 +27,7 @@ func MSGetReAppUrl() string {
}

//return access_token and refresh_token
func MSFirGetToken(code, cid, cse string) (access string, refresh string) {
func MSFirGetToken(code, cid, cse string) (access string, refresh string, Error error) {
var r http.Request
client := &http.Client{}
r.ParseForm()
Expand All @@ -40,26 +41,27 @@ func MSFirGetToken(code, cid, cse string) (access string, refresh string) {
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
if err != nil {
logger.Println(err)
return "", "", err
}
resp, err := client.Do(req)
if err != nil {
logger.Println(err)
return "", "", err
}
defer resp.Body.Close()
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Println(err)
return "", "", err
}
if gjson.Get(string(content), "token_type").String() == "Bearer" {
return gjson.Get(string(content), "access_token").String(), gjson.Get(string(content), "refresh_token").String()
} else {
return "", ""
return gjson.Get(string(content), "access_token").String(), gjson.Get(string(content), "refresh_token").String(), nil
}
return "", ""
return "", "", errors.New(string(content))
}

//return access_token
func MSGetToken(refreshtoken, cid, cse string) (access string) {
func MSGetToken(refreshtoken, cid, cse string) (access string, Error error) {
var r http.Request
client := &http.Client{}
r.ParseForm()
Expand All @@ -74,60 +76,77 @@ func MSGetToken(refreshtoken, cid, cse string) (access string) {
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
if err != nil {
logger.Println(err)
return "", err
}
resp, err := client.Do(req)
if err != nil {
logger.Println(err)
return "", err
}
defer resp.Body.Close()
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Println(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()
} else {
return ""
return gjson.Get(string(content), "access_token").String(), nil
}
return ""
return "", errors.New(string(content))
}

//Get User's Information
func MSGetUserInfo(accesstoken string) (json string) {
func MSGetUserInfo(accesstoken string) (json string, Error error) {
client := http.Client{}
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me", nil)
if err != nil {
logger.Println(err)
return ""
return "", err
}
req.Header.Set("Authorization", accesstoken)
resp, _ := client.Do(req)
resp, err := client.Do(req)
if err != nil {
logger.Println(err)
return "", err
}
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Println(err)
return "", err
}
if gjson.Get(string(content), "id").String() != "" {
//fmt.Println("UserName: " + gjson.Get(string(content), "displayName").String())
return string(content)
return string(content), nil
}
return ""
return "", errors.New(string(content))
}

func OutLookGetMails(accesstoken string) bool {
func OutLookGetMails(accesstoken string) (bool, error) {
client := http.Client{}
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me/messages", nil)
if err != nil {
logger.Println(err)
return false
return false, err
}
req.Header.Set("Authorization", accesstoken)
resp, _ := client.Do(req)
resp, err := client.Do(req)
if err != nil {
logger.Println(err)
return false, err
}
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Println(err)
return false, err
}
//fmt.Println(string(content))
//这里的.需要转义,否则会按路径的方式解析
if gjson.Get(string(content), "@odata\\.context").String() != "" {
return true
return true, nil
}
return false
return false, errors.New(string(content))
}

0 comments on commit a3cc759

Please sign in to comment.