golang : URL短縮サービス goo.gl を使う
URL Shortener API の使い方はこちら → URL Shortener。
ここでは API Key を使った方法を載せています。
type responseParam struct { Kind string `json:"kind"` Id string `json:"id"` LongUrl string `json:"longUrl"` } func GetShortenedUrlImpl(longUrl string) (string, error) { values := url.Values{} values.Add("key", GoogleApiKey) // パッケージの変数として定義し、この関数を呼ぶ前にセットしておきます。 url := "https://www.googleapis.com/urlshortener/v1/url" + "?" + values.Encode() param := fmt.Sprintf(`{"longUrl":"%s"}`, longUrl); req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(param))) if err != nil { return "", err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { return "", err } defer resp.Body.Close() respBody, err := ioutil.ReadAll(resp.Body) if err != nil { return "", err } var respParam responseParam err = json.Unmarshal(respBody, &respParam) if err != nil { return "", err } return respParam.Id, nil }