1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| func (m *Task) upload(appid string) (string, error) { filename, err := m.download() if err != nil { return "", err } accessToken, err := m.passport.GetAccessToken(appid) if err != nil { return "", err } params := &url.Values{ "access_token": []string{accessToken}, "type": []string{"image"}, } req, err := util.NewUploadRequest("https://api.weixin.qq.com/cgi-bin/media/upload?"+params.Encode(), nil, "media", filename) if err != nil { return "", err } resp, err := http.DefaultClient.Do(req) if err != nil { return "", err } defer resp.Body.Close() ret := make(map[string]interface{}) if err := json.NewDecoder(resp.Body).Decode(&ret); err != nil { return "", err } if mediaId, ok := ret["media_id"]; ok { return mediaId.(string), nil } else if errmsg, ok := ret["errmsg"]; ok { return "", errors.New(errmsg.(string)) } else { return "", errors.New("上传失败") } }
|