Skip to main content

获取用户基本信息——UnionID机制

获取用户基本信息官方文档

相关服务封装于 OfficialUserService 类中,可通过如下方式引入:

import { OfficialUserService } from '@iot9x.com/nestjs-official'

用法:

/**
* 获取用户基本信息(UnionID机制)
* @param appid 公众号appID
* @param openId 公众号OpenId
* @param lang 返回国家地区语言版本,默认简体中文
* @returns 公众号用户信息
*/
async getInfo(appid: string, openId: string, lang = OfficialLanguageType.ZH_CN): Promise<GetUserInfoResponse> {}

其中返回类型 GetUserInfoResponse 中的 data 字段为 OfficialUserInfo 类型,该类型可以通过如下方式从包中引入:

import { OfficialUserInfo } from '@iot9x.com/nestjs-official'

OfficialUserInfo 类型的详细定义为:

/** 公众号用户信息 */
export interface OfficialUserInfo {
/** 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。 */
subscribe: 0 | 1;
/** 用户的标识,对当前公众号唯一 */
openid: string;
/**
* 用户在开放平台上的唯一标识
* @description 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
*/
unionid?: string;
/** 用户的昵称 */
nickname: string;
/**
* 用户性别
* @description `0`-未知
* @description `1`-男性
* @description `2`-女性
*/
sex: 0 | 1 | 2;
/** 用户所在城市 */
city: string;
/** 用户所在国家 */
country: string;
/** 用户所在省份 */
province: string;
/** 用户的语言 */
language: OfficialLanguageType;
/**
* 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像)
* @description 用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
*/
headimgurl?: string;
/**
* 用户关注时间,为时间戳
* @description 如果用户曾多次关注,则取最后关注时间
* @example 1382694957
*/
subscribe_time: number;
/** 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 */
remark: string;
/** 用户所在的分组ID(兼容旧的用户分组接口) */
groupid: number;
/**
* 用户被打上的标签ID列表
* @example [128,2]
*/
tagid_list: number[];
/** 用户关注的渠道来源 */
subscribe_scene: OfficialSubscribeScene;
/**
* 二维码扫码场景(开发者自定义)
* @example 98765
*/
qr_scene: number;
/** 二维码扫码场景描述(开发者自定义) */
qr_scene_str: string;
}

批量获取用户信息

用法:

/**
* 批量获取用户基本信息(UnionID机制)
* @param appid 公众号appID
* @param params 用户openId和语言列表
* @returns 用户信息列表
*/
async batchGetInfo(appid: string, params: BatchGetUserInfoParams[]): Promise<BatchGetUserInfoResponse> {}

分页拉取所有的关注用户

这个是对官方文档中的方法封装。

/**
* 获取关注公众号的openid列表
* @param appid 公众号appID
* @param nextOpenid 下一次拉取的起始值
* @returns 关注者的openid列表信息
*/
async getSubscriberOpenidList(appid: string, nextOpenid?: string): Promise<GetSubscriberOpenidListResponse> {}