github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/datacube/user.go (about) 1 package datacube 2 3 import ( 4 "errors" 5 6 "github.com/chanxuehong/wechat/mp/core" 7 ) 8 9 // 用户增减数据 10 type UserSummaryData struct { 11 RefDate string `json:"ref_date"` // 数据的日期, YYYY-MM-DD 格式 12 13 // 用户的渠道, 数值代表的含义如下: 14 // 0 代表其他 15 // 1 xxx(文档没有说明) 16 // 2 xxx(文档没有说明) 17 // 3 代表扫二维码 18 // 4 xxx(文档没有说明) 19 // 5 xxx(文档没有说明) 20 // 17 代表名片分享 21 // 35 代表搜号码(即微信添加朋友页的搜索) 22 // 39 代表查询微信公众帐号 23 // 43 代表图文页右上角菜单 24 UserSource int `json:"user_source"` 25 26 NewUser int `json:"new_user"` // 新增的用户数量 27 CancelUser int `json:"cancel_user"` // 取消关注的用户数量, new_user 减去 cancel_user即为净增用户数量 28 } 29 30 // 获取用户增减数据. 31 func GetUserSummary(clt *core.Client, req *Request) (list []UserSummaryData, err error) { 32 if req == nil { 33 err = errors.New("nil Request") 34 return 35 } 36 37 var result struct { 38 core.Error 39 List []UserSummaryData `json:"list"` 40 } 41 42 incompleteURL := "https://api.weixin.qq.com/datacube/getusersummary?access_token=" 43 if err = clt.PostJSON(incompleteURL, req, &result); err != nil { 44 return 45 } 46 47 if result.ErrCode != core.ErrCodeOK { 48 err = &result.Error 49 return 50 } 51 list = result.List 52 return 53 } 54 55 // 累计用户数据 56 type UserCumulateData struct { 57 RefDate string `json:"ref_date"` // 数据的日期, YYYY-MM-DD 格式 58 UserSource int `json:"user_source"` // 返回的 json 有这个字段, 文档中没有, 都是 0 值, 可能没有实际意义!!! 59 CumulateUser int `json:"cumulate_user"` // 总用户量 60 } 61 62 // 获取累计用户数据. 63 func GetUserCumulate(clt *core.Client, req *Request) (list []UserCumulateData, err error) { 64 if req == nil { 65 err = errors.New("nil Request") 66 return 67 } 68 69 var result struct { 70 core.Error 71 List []UserCumulateData `json:"list"` 72 } 73 74 incompleteURL := "https://api.weixin.qq.com/datacube/getusercumulate?access_token=" 75 if err = clt.PostJSON(incompleteURL, req, &result); err != nil { 76 return 77 } 78 79 if result.ErrCode != core.ErrCodeOK { 80 err = &result.Error 81 return 82 } 83 list = result.List 84 return 85 }