C# WeChat 포털 및 애플리케이션 개발 (5) 사용자 그룹 정보 관리
이 글에서는 주로 WeChat 포털 및 애플리케이션의 C# 개발 다섯 번째 글, 사용자 그룹 정보 관리에 대해 자세히 소개하고 있으며 관심 있는 친구들은 참고할 수 있습니다.
지난 달에 C#을 개발했습니다. WeChat 포털 및 애플리케이션을 작성했으며 시간 제약으로 인해 한동안 이 블로그 시리즈를 계속 작성하지 않았습니다. 이 측면에 대한 연구를 중단한 것이 아니라 계속 탐색해 왔습니다. 이 분야에 기술을 더 잘 적용하려면 기반 기술 개발에 집중해야 합니다. 이 기사에서는 이전 기사의 소개에 이어 주로 그룹 관리의 개발 및 적용을 소개합니다. 이 기사와 이전 기사의 내용은 사용자 정보와 그룹 정보 관리의 완전한 조합 역할을 합니다.
1. 사용자 그룹 관리 콘텐츠
사용자 그룹의 도입은 주로 팔로어 목록 관리 및 다른 그룹에 메시지 보내기 작업을 용이하게 하기 위한 것입니다 하나의 공개 계정은 최대 500개의 그룹 생성을 지원합니다. .
사용자 그룹 관리에는 다음 측면이 포함됩니다.
1 그룹 만들기
2 모든 그룹 쿼리
3 사용자가 속한 그룹 쿼리
4 그룹 이름 수정
5 모바일 사용자 그룹
WeChat의 그룹 생성 정의는 다음과 같습니다. 다음과 같이 표시됩니다.
http 요청 방법: POST(https 프로토콜을 사용하세요)
https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
POST 데이터 형식: json
POST 데이터 예: {"group":{"name":"test"}}
일반적으로 반환되는 결과는 다음과 같습니다.
{ "group": { "id": 107, "name": "test" } }
다른 인터페이스도 비슷한 방식으로 일부 매개변수를 URL에 게시하여 반환된 Json 데이터를 가져옵니다.
이전 에세이에서 정의한 GroupJson의 엔터티 클래스 정보는 다음과 같습니다.
/// <summary> /// 分组信息 /// </summary> public class GroupJson : BaseJsonResult { /// <summary> /// 分组id,由微信分配 /// </summary> public int id { get; set; } /// <summary> /// 分组名字,UTF8编码 /// </summary> public string name { get; set; } }
위의 인터페이스 정의를 바탕으로 여러 인터페이스를 정의하고 이를 User Management의 API 인터페이스로 요약했습니다.
/// <summary> /// 查询所有分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <returns></returns> List<GroupJson> GetGroupList(string accessToken); /// <summary> /// 创建分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="name">分组名称</param> /// <returns></returns> GroupJson CreateGroup(string accessToken, string name); /// <summary> /// 查询用户所在分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="openid">用户的OpenID</param> /// <returns></returns> int GetUserGroupId(string accessToken, string openid); /// <summary> /// 修改分组名 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="id">分组id,由微信分配</param> /// <param name="name">分组名字(30个字符以内)</param> /// <returns></returns> CommonResult UpdateGroupName(string accessToken, int id, string name); /// <summary> /// 移动用户分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="openid">用户的OpenID</param> /// <param name="to_groupid">分组id</param> /// <returns></returns> CommonResult MoveUserToGroup(string accessToken, string openid, int to_groupid);
2. 사용자 그룹 관리 인터페이스 구현
2.1 사용자 그룹 생성
사용자 그룹을 생성하는 POST 데이터 작업을 구현하는 방법을 분석하기 위해 사용자를 생성하는 구체적인 프로세스를 단계별로 이해해 보겠습니다. 단계.
먼저 아래와 같이 언급해야 할 여러 속성을 포함하는 동적으로 정의된 엔터티 클래스 정보를 생성해야 합니다.
string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}", accessToken); var data = new { group = new { name = name } }; string postData = data.ToJson();
그 중 객체를 적합한 Json 데이터 작업으로 변환하여 확장 메서드 ToJson에 넣습니다. 이는 주로 동적으로 정의된 엔터티 클래스를 Json 콘텐츠로 변환하는 것을 용이하게 하기 위한 것이며, 주로 일련 번호를 호출합니다. Json.NET의 작동 .
/// <summary> /// 把对象为json字符串 /// </summary> /// <param name="obj">待序列号对象</param> /// <returns></returns> public static string ToJson(this object obj) { return JsonConvert.SerializeObject(obj, Formatting.Indented); }
Post 데이터를 준비한 후, 데이터를 얻고 적절한 형식으로 변환하기 위한 연산 코드를 자세히 살펴보겠습니다.
GroupJson group = null; CreateGroupResult result = JsonHelper<CreateGroupResult>.ConvertJson(url, postData); if (result != null) { group = result.group; }
POST 데이터를 적절한 형식의 엔터티 클래스로 변환하는 작업은 ConvertJson 메서드에 배치됩니다. 내부의 HttpHelper는 내 공용 클래스 라이브러리의 보조 클래스입니다. 주로 하위 계층을 호출합니다. httpWebRequest 객체 메소드는 데이터를 제출하고 반환 결과를 얻습니다.
/// <summary> /// 转换Json字符串到具体的对象 /// </summary> /// <param name="url">返回Json数据的链接地址</param> /// <param name="postData">POST提交的数据</param> /// <returns></returns> public static T ConvertJson(string url, string postData) { HttpHelper helper = new HttpHelper(); string content = helper.GetHtml(url, postData, true); VerifyErrorCode(content); T result = JsonConvert.DeserializeObject<T>(content); return result; }
이렇게 사용자 그룹을 생성하는 전체 작업 기능은 다음과 같습니다.
/// <summary> /// 创建分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="name">分组名称</param> /// <returns></returns> public GroupJson CreateGroup(string accessToken, string name) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}", accessToken); var data = new { group = new { name = name } }; string postData = data.ToJson(); GroupJson group = null; CreateGroupResult result = JsonHelper<CreateGroupResult>.ConvertJson(url, postData); if (result != null) { group = result.group; } return group; }
2.2 모든 그룹 조회
모든 그룹 조회를 하면 서버에 있는 모든 그룹, 즉 각 그룹의 ID와 이름을 조회할 수 있습니다.
/// <summary> /// 查询所有分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <returns></returns> public List<GroupJson> GetGroupList(string accessToken) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}", accessToken); List<GroupJson> list = new List<GroupJson>(); GroupListJsonResult result = JsonHelper<GroupListJsonResult>.ConvertJson(url); if (result != null && result.groups != null) { list.AddRange(result.groups); } return list; }
2.3 사용자가 속한 그룹 조회
각 사용자는 기본적으로 그룹 해제된 그룹에 속해 있습니다. API를 통해 사용자의 그룹 정보, 즉 ID를 얻을 수 있습니다. 사용자 그룹의.
/// <summary> /// 查询用户所在分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="openid">用户的OpenID</param> /// <returns></returns> public int GetUserGroupId(string accessToken, string openid) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}", accessToken); var data = new { openid = openid }; string postData = data.ToJson(); int groupId = -1; GroupIdJsonResult result = JsonHelper<GroupIdJsonResult>.ConvertJson(url, postData); if (result != null) { groupId = result.groupid; } return groupId; }
2.4 그룹 이름 수정
실제로 사용자가 속한 그룹을 조정할 수도 있습니다. 작업 코드는 다음과 같습니다.
/// <summary> /// 修改分组名 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="id">分组id,由微信分配</param> /// <param name="name">分组名字(30个字符以内)</param> /// <returns></returns> public CommonResult UpdateGroupName(string accessToken, int id, string name) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}", accessToken); var data = new { group = new { id = id, name = name } }; string postData = data.ToJson(); return Helper.GetExecuteResult(url, postData); }
여기서 반환 값 CommonResult는 성공 또는 실패를 나타내는 부울 플래그와 문자열 유형(있는 경우)의 오류 메시지를 포함하는 엔터티 클래스입니다.
GetExecuteResult 함수 본문의 경우 주로 데이터를 제출한 다음 결과를 얻고 결과에 따라 처리하는 함수가 포함되어 있습니다.
/// <summary> /// 通用的操作结果 /// </summary> /// <param name="url">网页地址</param> /// <param name="postData">提交的数据内容</param> /// <returns></returns> public static CommonResult GetExecuteResult(string url, string postData = null) { CommonResult success = new CommonResult(); try { ErrorJsonResult result; if (postData != null) { result = JsonHelper<ErrorJsonResult>.ConvertJson(url, postData); } else { result = JsonHelper<ErrorJsonResult>.ConvertJson(url); } if (result != null) { success.Success = (result.errcode == ReturnCode.请求成功); success.ErrorMessage = result.errmsg; } } catch (WeixinException ex) { success.ErrorMessage = ex.Message; } return success; } }
위의 빨간색 부분의 의미는 엔터티 클래스로 변환할 때 위챗에 오류가 정의되어 있으면 오류 메시지가 기록되고 다른 예외는 처리되지 않는다는 것입니다(즉, ).
2.5 새 그룹으로 사용자 이동
사용자를 새 그룹으로 이동하는 작업은 위 섹션과 유사합니다. 자세한 내용은 코드를 참조하세요.
/// <summary> /// 移动用户分组 /// </summary> /// <param name="accessToken">调用接口凭证</param> /// <param name="openid">用户的OpenID</param> /// <param name="to_groupid">分组id</param> /// <returns></returns> public CommonResult MoveUserToGroup(string accessToken, string openid, int to_groupid) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token={0}", accessToken); var data = new { openid = openid, to_groupid = to_groupid }; string postData = data.ToJson(); return Helper.GetExecuteResult(url, postData); }
3. 사용자 그룹화 인터페이스 호출
위 섹션에서는 사용자 그룹화를 위한 다양한 인터페이스가 정의 및 구현되어 있으며 호출 작업은 다음과 같습니다. 코드(테스트 코드)가 표시됩니다.
private void btnGetGroupList_Click(object sender, EventArgs e) { IUserApi userBLL = new UserApi(); List<GroupJson> list = userBLL.GetGroupList(token); foreach (GroupJson info in list) { string tips = string.Format("{0}:{1}", info.name, info.id); Console.WriteLine(tips); } } private void btnFindUserGroup_Click(object sender, EventArgs e) { IUserApi userBLL = new UserApi(); int groupId = userBLL.GetUserGroupId(token, openId); string tips = string.Format("GroupId:{0}", groupId); Console.WriteLine(tips); } private void btnCreateGroup_Click(object sender, EventArgs e) { IUserApi userBLL = new UserApi(); GroupJson info = userBLL.CreateGroup(token, "创建测试分组"); if (info != null) { string tips = string.Format("GroupId:{0} GroupName:{1}", info.id, info.name); Console.WriteLine(tips); string newName = "创建测试修改"; CommonResult result = userBLL.UpdateGroupName(token, info.id, newName); Console.WriteLine("修改分组名称:" + (result.Success ? "成功" : "失败:" + result.ErrorMessage)); } } private void btnUpdateGroup_Click(object sender, EventArgs e) { int groupId = 111; string newName = "创建测试修改"; IUserApi userBLL = new UserApi(); CommonResult result = userBLL.UpdateGroupName(token, groupId, newName); Console.WriteLine("修改分组名称:" + (result.Success ? "成功" : "失败:" + result.ErrorMessage)); } private void btnMoveToGroup_Click(object sender, EventArgs e) { int togroup_id = 111;//输入分组ID if (togroup_id > 0) { IUserApi userBLL = new UserApi(); CommonResult result = userBLL.MoveUserToGroup(token, openId, togroup_id); Console.WriteLine("移动用户分组名称:" + (result.Success ? "成功" : "失败:" + result.ErrorMessage)); } }
了解了上面的代码和调用规则,我们就能通过API进行用户分组信息的管理了。通过在应用程序中集成相关的接口代码,我们就能够很好的控制我们的关注用户列表和用户分组信息。从而为我们下一步用户的信息推送打好基础。
위 내용은 C# WeChat 포털 및 애플리케이션 개발 (5) 사용자 그룹 정보 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











소셜 미디어의 급속한 발전으로 Xiaohongshu는 가장 인기 있는 소셜 플랫폼 중 하나가 되었습니다. 사용자는 Xiaohongshu 계정을 만들어 자신의 개인 신원을 표시하고 다른 사용자와 소통하고 상호 작용할 수 있습니다. 사용자의 Xiaohongshu 번호를 찾으려면 다음의 간단한 단계를 따르세요. 1. Xiaohongshu 계정을 사용하여 사용자를 찾는 방법은 무엇입니까? 1. Xiaohongshu 앱을 열고 오른쪽 하단에 있는 "검색" 버튼을 클릭한 다음 "메모" 옵션을 선택합니다. 2. 노트 목록에서 찾고자 하는 사용자가 게시한 노트를 찾아보세요. 클릭하시면 메모 세부정보 페이지로 이동합니다. 3. 노트 상세페이지에서 해당 사용자의 아바타 아래 '팔로우' 버튼을 클릭하여 해당 사용자의 개인 홈페이지로 진입합니다. 4. 이용자 개인 홈페이지 우측 상단의 점 3개 버튼 클릭 후 '개인정보' 선택

이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

홈 화면에서 중요한 항목을 삭제하고 다시 복구하려고 하시나요? 다양한 방법으로 앱 아이콘을 화면에 다시 표시할 수 있습니다. 우리는 당신이 따라갈 수 있는 모든 방법과 홈 화면에 앱 아이콘을 다시 넣을 수 있는 방법에 대해 논의했습니다. 방법 1 - 앱 라이브러리에서 앱 아이콘 바꾸기 앱 라이브러리에서 직접 홈 화면에 앱 아이콘을 배치할 수 있습니다. 1단계 – 옆으로 스와이프하여 앱 라이브러리의 모든 앱을 찾습니다. 2단계 – 이전에 삭제한 앱 아이콘을 찾습니다. 3단계 – 메인 라이브러리의 앱 아이콘을 홈 화면의 올바른 위치로 드래그하기만 하면 됩니다. 이것은 응용 다이어그램입니다

PHP에서 화살표 기호의 역할과 실제 적용 PHP에서 화살표 기호(->)는 일반적으로 객체의 속성과 메서드에 액세스하는 데 사용됩니다. 객체는 PHP의 객체지향 프로그래밍(OOP)의 기본 개념 중 하나입니다. 실제 개발에서는 객체를 조작할 때 화살표 기호가 중요한 역할을 합니다. 이 기사에서는 화살표 기호의 역할과 실제 적용을 소개하고 독자의 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. 1. 객체의 속성에 접근하기 위한 화살표 기호의 역할 화살표 기호를 사용하여 객체의 속성에 접근할 수 있습니다. 쌍을 인스턴스화할 때

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

Linux 시스템의 사용자 비밀번호 저장 메커니즘 분석 Linux 시스템에서 사용자 비밀번호 저장은 매우 중요한 보안 메커니즘 중 하나입니다. 이 기사에서는 암호화된 비밀번호 저장, 비밀번호 확인 프로세스, 사용자 비밀번호를 안전하게 관리하는 방법을 포함하여 Linux 시스템의 사용자 비밀번호 저장 메커니즘을 분석합니다. 동시에 특정 코드 예제를 사용하여 비밀번호 저장의 실제 작업 프로세스를 보여줍니다. 1. 비밀번호의 암호화된 저장 Linux 시스템에서 사용자 비밀번호는 시스템에 일반 텍스트로 저장되지 않고 암호화되어 저장됩니다. 엘

오늘날 인공지능(AI) 기술 개발은 본격화되고 있으며, 다양한 분야에서 큰 잠재력과 영향력을 보여주고 있습니다. 오늘 Dayao는 여러분에게 몇 가지 참고 자료를 제공하고자 4개의 .NET 오픈 소스 AI 모델 LLM 관련 프로젝트 프레임워크를 공유할 것입니다. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel은 OpenAI, Azure와 같은 대규모 언어 모델(LLM)을 통합하도록 설계된 오픈 소스 소프트웨어 개발 키트(SDK)입니다.
