package api import ( "encoding/json" "fmt" "mygo/conf" "strconv" "github.com/asmcos/requests" "github.com/fatih/color" ) func GenID(tag string) int { url := fmt.Sprintf("http://%s:%d/api/segment/get/%s", conf.IP, conf.PORT, tag) resp, err := requests.Get(url) if err != nil { panic(err) } id, err := strconv.Atoi(resp.Text()) if err != nil { panic(err) } return id } type TokenResp struct { AccessToken string `json:"access_token"` ExpiresIn int64 `json:"expires_in"` } // https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET func GetAccessToken(appid, secret string) (string, error) { result := TokenResp{} url := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", appid, secret) response, err := requests.Get(url) if err != nil { return "", err } err1 := json.Unmarshal(response.Content(), &result) //解析json字符串 if err1 != nil { return "", err } return result.AccessToken, err } type Req struct { Path string `json:"path"` Query string `json:"query"` ExpireType int64 `json:"expire_type"` ExpireInterval int64 `json:"expire_interval"` EnvVersion string `json:"env_version"` } type Resp struct { Errcode int64 `json:"errcode"` Errmsg string `json:"errmsg"` URLLink string `json:"url_link"` } //https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN func GetShareUrl(access_token string, body Req) (Resp, error) { result := Resp{} // url := fmt.Sprintf("https://api.weixin.qq.com/wxa/generate_urllink?access_token=%s", access_token) url := fmt.Sprintf("http://127.0.0.1:8899/generate_urllink?access_token=%s", access_token) // color.Red("GetShareUrl url = %v", url) req := requests.Requests() // req.Debug = 1 response, err := req.PostJson(url, body) if err != nil { color.Red("%v", err) return result, err } err1 := json.Unmarshal(response.Content(), &result) //解析json字符串 if err1 != nil { return result, err1 } return result, nil }