C#开发微信门户及应用(4) 关注用户列表及详细信息管理

2019-12-30 17:45:29刘景俊

在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起来,专心做好底层的技术开发。

微信的很重要的一个特点就是能够利用其平台庞大的用户群体,因此很容易整合在CRM(客户关系管理)系统里面,服务号和订阅好都能够向关注者推送相关的产品消息,还能和48小时内响应消息和事件的活跃用户进行交互对话,因此用户信息是微信API里面非常重要的一环,本随笔主要介绍获取关注用户、查看用户信息、分组管理等方面的开发应用。

1、关注用户列表及用户分组信息

在微信的管理平台上,我们可以看到自己账号的关注者用户,以及用户分组信息,如下所示。

C#微信关注用户列表,C#微信详细信息管理,C#微信关注

上面的管理界面,能看到关注者用户的基础信息,但是使用微信API获取到的是一个称之为OpenID的列表,我们先了解这个东西是什么?微信API的说明给出下面的解析:

关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)组成。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

上面的解析意思很清楚了,就是一个用户关注我们的公众号,那么不管他是第几次关注,对我们公众号来说,都是一个确定的值;但是,一个用户对其他公众号,却有着其他不同的OpenID。

微信提供了为数不多的几个关键字信息,用来记录用户的相关内容,根据用户的相关定义,我们定义一个实体类,用来放置获取回来的用户信息。


 /// <summary>
 /// 高级接口获取的用户信息。
 /// 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID
 /// (加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。
 /// 公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。
 /// </summary>
 public class UserJson : BaseJsonResult
 {
 /// <summary>
 /// 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
 /// </summary>
 public int subscribe { get; set; }

 /// <summary>
 /// 用户的标识,对当前公众号唯一
 /// </summary>
 public string openid { get; set; }

 /// <summary>
 /// 用户的昵称
 /// </summary>
 public string nickname { get; set; }

 /// <summary>
 /// 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
 /// </summary>
 public int sex { get; set; }

 /// <summary>
 /// 用户的语言,简体中文为zh_CN
 /// </summary>
 public string language { get; set; }

 /// <summary>
 /// 用户所在城市
 /// </summary>
 public string city { get; set; }

 /// <summary>
 /// 用户所在省份
 /// </summary>
 public string province { get; set; }

 /// <summary>
 /// 用户所在国家
 /// </summary>
 public string country { get; set; }

 /// <summary>
 /// 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
 /// </summary>
 public string headimgurl { get; set; }

 /// <summary>
 /// 用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
 /// </summary>
 public long subscribe_time { get; set; }
 }