|
- package main
-
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- )
-
- type materialQuery struct {
- Type string `json:"type"`
- Offiset int `json:"offset"`
- Count int `json:"count"`
- }
-
- type materialCount struct {
- VoiceCount int64 `json:"voice_count"`
- VideoCount int64 `json:"video_count"`
- ImageCount int64 `json:"image_count"`
- NewsCount int64 `json:"news_count"`
- }
-
- func getNewList() (jstr string) {
- jstr = getMediaList("news")
- return
- }
-
- func getMediaList(mediaType string) (jstr string) {
- var q = materialQuery{mediaType, 0, 20}
- jsonStr, _ := json.Marshal(q)
- u := url4MaterialList()
- req, err := http.NewRequest("POST", u, bytes.NewBuffer(jsonStr))
- log.Println(u)
- if err != nil {
- return ""
- }
-
- client := &http.Client{}
- r, err := client.Do(req)
- if err != nil {
- return ""
- }
- defer r.Body.Close()
- b, _ := ioutil.ReadAll(r.Body)
- jstr = string(b)
- return
- }
-
- func url4MaterialList() string {
- atk, _ := GetAccessToken()
- u := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=%s", atk)
- return u
- }
-
- func url4MaterialCount() string {
- atk, _ := GetAccessToken()
- u := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token=%s", atk)
- return u
- }
-
- func getMaterialCount() (materialCount, error) {
- mc := materialCount{}
- url := url4MaterialCount()
- r, err := http.Get(url)
- if err != nil {
- return mc, err
- }
- defer r.Body.Close()
- b, _ := ioutil.ReadAll(r.Body)
- err = json.Unmarshal(b, &mc)
- return mc, nil
- }
|