package basic import ( "fmt" "github.com/silenceper/wechat/v2/util" ) const ( // 将一条长链接转成短链接 // https://developers.weixin.qq.com/doc/offiaccount/Account_Management/URL_Shortener.html long2shortURL = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=%s" long2shortAction = "long2short" ) type ( reqLong2ShortURL struct { Action string `json:"action"` LongURL string `json:"long_url"` } resplong2ShortURL struct { ShortURL string `json:"short_url"` util.CommonError } ) // Long2ShortURL 将一条长链接转成短链接 func (basic *Basic) Long2ShortURL(longURL string) (shortURL string, err error) { var ( req = &reqLong2ShortURL{ Action: long2shortAction, LongURL: longURL, } resp = new(resplong2ShortURL) ac, uri string responseBytes []byte ) ac, err = basic.GetAccessToken() if err != nil { return } uri = fmt.Sprintf(long2shortURL, ac) responseBytes, err = util.PostJSON(uri, req) if err != nil { return } if err = util.DecodeWithError(responseBytes, resp, long2shortAction); err != nil { return } shortURL = resp.ShortURL return }