user

package
v0.0.0-...-5652a87 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2017 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

用户管理接口.

Index

Constants

View Source
const (
	Language_zh_CN = "zh_CN" // 简体中文
	Language_zh_TW = "zh_TW" // 繁体中文
	Language_en    = "en"    // 英文
)
View Source
const (
	SexUnknown = 0 // 未知
	SexMale    = 1 // 男性
	SexFemale  = 2 // 女性
)
View Source
const GroupCountLimit = 100 // 一个公众账号, 最多支持创建100个分组
View Source
const (
	UserPageSizeLimit = 10000 // 每次拉取的 OPENID 个数最大值为 10000
)

Variables

View Source
var ErrNoHeadImage = errors.New("没有头像")

Functions

This section is empty.

Types

type Client

type Client mp.Client

func NewClient

func NewClient(srv mp.AccessTokenServer, clt *http.Client) *Client

func (*Client) BatchMoveUserToGroup

func (clt *Client) BatchMoveUserToGroup(openIdList []string, toGroupId int64) (err error)

批量移动用户分组.

func (*Client) GroupCreate

func (clt *Client) GroupCreate(name string) (group *Group, err error)

创建分组.

name: 分组名字(30个字符以内)

func (*Client) GroupDelete

func (clt *Client) GroupDelete(groupId int64) (err error)

删除分组.

注意本接口是删除一个用户分组, 删除分组后, 所有该分组内的用户自动进入默认分组

func (*Client) GroupList

func (clt *Client) GroupList() (groups []Group, err error)

查询所有分组.

func (*Client) GroupUpdate

func (clt *Client) GroupUpdate(groupId int64, newName string) (err error)

修改分组名.

name: 分组名字(30个字符以内).

func (*Client) MoveUserToGroup

func (clt *Client) MoveUserToGroup(openId string, toGroupId int64) (err error)

移动用户分组.

func (*Client) UserInWhichGroup

func (clt *Client) UserInWhichGroup(openId string) (groupId int64, err error)

查询用户所在分组.

func (*Client) UserInfo

func (clt *Client) UserInfo(openId string, lang string) (userinfo *UserInfo, err error)

获取用户基本信息.

注意:
1. 需要判断返回的 UserInfo.IsSubscriber 是否等于 1 还是 0
2. lang 可以是 zh_CN, zh_TW, en, 如果留空 "" 则默认为 zh_CN

func (*Client) UserInfoBatchGet

func (clt *Client) UserInfoBatchGet(req []UserInfoBatchGetRequestItem) (UserInfoList []UserInfo, err error)

批量获取用户基本信息

注意: 需要对返回的 UserInfoList 的每个 UserInfo.IsSubscriber 做判断

func (*Client) UserIterator

func (clt *Client) UserIterator(NextOpenId string) (iter *UserIterator, err error)

获取用户遍历器, 从 NextOpenId 开始遍历, 如果 NextOpenId == "" 则表示从头遍历.

NOTE: 目前微信是从 NextOpenId 下一个用户开始遍历的, 和微信文档描述不一样!!!

func (*Client) UserList

func (clt *Client) UserList(NextOpenId string) (rslt *UserListResult, err error)

获取关注者列表.

NOTE:
1. 每次最多能获取 10000 个用户, 可以多次指定 NextOpenId 来获取以满足需求, 如果 NextOpenId == "" 则表示从头获取
2. 目前微信返回的数据并不包括 NextOpenId 本身, 是从 NextOpenId 下一个用户开始的, 和微信文档描述不一样!!!

func (*Client) UserUpdateRemark

func (clt *Client) UserUpdateRemark(openId, remark string) (err error)

开发者可以通过该接口对指定用户设置备注名.

type Group

type Group struct {
	Id        int64  `json:"id"`    // 分组id, 由微信分配
	Name      string `json:"name"`  // 分组名字, UTF8编码
	UserCount int    `json:"count"` // 分组内用户数量
}

type UserInfo

type UserInfo struct {
	IsSubscriber int    `json:"subscribe"` // 用户是否订阅该公众号标识, 值为0时, 代表此用户没有关注该公众号, 拉取不到其余信息
	OpenId       string `json:"openid"`    // 用户的标识, 对当前公众号唯一
	Nickname     string `json:"nickname"`  // 用户的昵称
	Sex          int    `json:"sex"`       // 用户的性别, 值为1时是男性, 值为2时是女性, 值为0时是未知
	Language     string `json:"language"`  // 用户的语言, zh_CN, zh_TW, en
	City         string `json:"city"`      // 用户所在城市
	Province     string `json:"province"`  // 用户所在省份
	Country      string `json:"country"`   // 用户所在国家

	// 用户头像, 最后一个数值代表正方形头像大小(有0, 46, 64, 96, 132数值可选, 0代表640*640正方形头像),
	// 用户没有头像时该项为空
	HeadImageURL string `json:"headimgurl"`

	// 用户关注时间, 为时间戳. 如果用户曾多次关注, 则取最后关注时间
	SubscribeTime int64 `json:"subscribe_time"`

	// 只有在用户将公众号绑定到微信开放平台帐号后, 才会出现该字段.
	UnionId string `json:"unionid"`

	Remark  string `json:"remark"`  // 公众号运营者对粉丝的备注, 公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
	GroupId int64  `json:"groupid"` // 用户所在的分组ID
}

func (*UserInfo) HeadImageSize

func (info *UserInfo) HeadImageSize() (size int, err error)

获取用户图像的大小, 如果用户没有图像则返回 ErrNoHeadImage 错误.

type UserInfoBatchGetRequestItem

type UserInfoBatchGetRequestItem struct {
	OpenId   string `json:"openid"`
	Language string `json:"lang,omitempty"`
}

func NewUserInfoBatchGetRequest

func NewUserInfoBatchGetRequest(openIdList []string, lang string) (ret []UserInfoBatchGetRequestItem)

创建 []UserInfoBatchGetRequestItem

lang 的取值可以为 "", Language_zh_CN, Language_zh_TW, Language_en

type UserIterator

type UserIterator struct {
	// contains filtered or unexported fields
}

UserIterator

iter, err := Client.UserIterator("NextOpenId")
if err != nil {
    // TODO: 增加你的代码
}

for iter.HasNext() {
    openids, err := iter.NextPage()
    if err != nil {
        // TODO: 增加你的代码
    }
    // TODO: 增加你的代码
}

func (*UserIterator) HasNext

func (iter *UserIterator) HasNext() bool

func (*UserIterator) NextPage

func (iter *UserIterator) NextPage() (OpenIdList []string, err error)

func (*UserIterator) TotalCount

func (iter *UserIterator) TotalCount() int

type UserListResult

type UserListResult struct {
	TotalCount int `json:"total"` // 关注该公众账号的总用户数
	GotCount   int `json:"count"` // 拉取的 OPENID 个数, 最大值为10000

	Data struct {
		OpenIdList []string `json:"openid,omitempty"`
	} `json:"data"` // 列表数据, OPENID 的列表

	// 拉取列表的后一个用户的OPENID, 如果 next_openid == "" 则表示没有了用户数据
	NextOpenId string `json:"next_openid"`
}

获取关注者列表返回的数据结构

Directories

Path Synopsis
网页授权获取用户基本信息
网页授权获取用户基本信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL