一、用戶標籤管理
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/