ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

.Net6+Furion+Sqlsugar+SenparcSdk开发微信公众号系列之十二:用户管理

2022-06-06 14:35:07  阅读:184  来源: 互联网

标签:Task SenparcSdk 微信 Furion 接口 user 标签 input public


一、用户标签管理

1.1、创建标签

Services文件夹下新建User文件夹和用户服务类

Dto文件夹下新建TagInput.cs

    public class TagInput
    {
        /// <summary>
        /// 标签名称
        /// </summary>
        public string Name { get; set; }
    }

新建添加标签接口

        /// <summary>
        /// 创建标签
        /// </summary>
        /// <returns></returns>
        [HttpPost("/user/tag/add")]
        public async Task<dynamic> CreateTag(TagInput input)
        {
            return await UserTagApi.CreateAsync(AppId, input.Name);
        }

测试一下,成功显示

 

1.2、获取公众号已创建的标签

新建接口

/// <summary>
        /// 获取公众号已创建的标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/list")]
        public async Task<dynamic> GetTags(TagInput input)
        {
            return await UserTagApi.GetAsync(AppId);
        }

测试接口

1.3、编辑标签

TagInput.cs新增UpdateTagInput类

public class UpdateTagInput: TagInput
    {
        public int Id { get; set; }
    }

新建接口

        /// <summary>
        /// 编辑标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/update")]
        public async Task<dynamic> UpdateTag(UpdateTagInput input)
        {
            return await UserTagApi.UpdateAsync(AppId, input.Id, input.Name);
        }

 测试一下

再查看接口

1.4、删除标签

 新建接口

        /// <summary>
        /// 删除标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/delete")]
        public async Task<dynamic> DeleteTag(UpdateTagInput input)
        {
            return await UserTagApi.DeleteAsync(AppId, input.Id);
        }

测试一下

再获取一下列表,成功删除

1.5、获取标签下粉丝列表

新建接口

        /// <summary>
        /// 获取标签下粉丝列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/user")]
        public async Task<dynamic> GetTagUser(UpdateTagInput input)
        {
            return await UserTagApi.GetAsync(AppId, input.Id);
        }

测试一下,因为还没打标签所以是空的

二、用户管理

2.1、批量为用户打标签

TagInput.cs新建UserTagInput.cs

  public class UserTagInput : UpdateTagInput
    {
        public List<string> Users { get; set; } = new List<string>();
    }

新建接口

        /// <summary>
        /// 批量为用户打标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/batch")]
        public async Task<dynamic> BatchTag(UserTagInput input)
        {
            return await UserTagApi.BatchTaggingAsync(AppId, input.Id, input.Users);
        }

测试接口

再看一下获取标签下用户接口

2.2、批量为用户取消标签

新建接口

        /// <summary>
        /// 批量为用户取消标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/unbatch")]
        public async Task<dynamic> BatchUnTag(UserTagInput input)
        {
            return await UserTagApi.BatchUntaggingAsync(AppId, input.Id, input.Users);
        }

测试接口

再获取一下

2.3、获取用户身上的标签列表

新建接口

        /// <summary>
        /// 获取用户身上的标签列表
        /// </summary>
        /// <param name="openid"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/batchlist/{openid}")]
        public async Task<dynamic> UserTagList(string openid)
        {
            return await UserTagApi.UserTagListAsync(AppId, openid);
        }

测试一下

2.4、设置用户备注名

Dto文件夹新建UserInput.cs


namespace WeiXinApi.Application.Services
{
    public class UserInput
    {
        /// <summary>
        /// 微信号
        /// </summary>
        public string OpenId { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }
}

新建接口

        /// <summary>
        /// 设置用户备注名
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/updateremark")]
        public async Task<dynamic> UpdateRemark(UserInput input)
        {
            return await UserApi.UpdateRemarkAsync(AppId, input.OpenId, input.Remark);
        }

测试接口

2.5、获取用户基本信息

新建接口

        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="openid"></param>
        /// <returns></returns>
        [HttpGet("/user/info/{openid}")]
        public async Task<dynamic> UserInfo(string openid)
        {
            return await UserApi.InfoAsync(AppId, openid);
        }

 测试一下,可以看到备注是我们之前设置的

2.6、获取用户列表

UserInput.cs下新建UserListInput.cs

    public class UserListInput
    {

        /// <summary>
        /// 第一个拉取的OPENID,不填默认从头开始拉取
        /// </summary>
        public string NextOpenId { get; set; }
    }

新建接口

        /// <summary>
        /// 获取用户列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/list")]
        public async Task<dynamic> UserList([FromQuery] UserListInput input)
        {
            return await UserApi.GetAsync(AppId, input.NextOpenId);
        }

测试一下

三、黑名单管理

3.1、拉黑用户

        /// <summary>
        /// 批量拉黑用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/batchblacklist")]
        public async Task<dynamic> Batchblacklist(BlackInput input)
        {
            return await UserApi.BatchBlackListAsync(AppId, input.OpenidList);
        }

测试接口

3.2、黑名单列表

BlackInput新增字段

        /// <summary>
        /// 当 begin_openid 为空时,默认从开头拉取。
        /// </summary>
        public string BeginOpenid { get; set; }

新增接口

        /// <summary>
        /// 获取黑名单列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/blacklist")]
        public async Task<dynamic> GetBlackList([FromQuery] BlackInput input)
        {
            return await UserApi.GetBlackListAsync(AppId, input.BeginOpenid);
        }

测试一下

3.3、取消拉黑用户

新建接口

        /// <summary>
        /// 批量取消拉黑用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/batchunblackList")]
        public async Task<dynamic> BatchUnBlackList(BlackInput input)
        {
            return await UserApi.BatchUnBlackListAsync(AppId, input.OpenidList);
        }

测试一下

再获取黑名单看下

四、本章Gitee链接地址

https://gitee.com/huguodong520/weixinapi/tree/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/

标签:Task,SenparcSdk,微信,Furion,接口,user,标签,input,public
来源: https://www.cnblogs.com/huguodong/p/16338165.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有