この記事では主に、WeChat ポータルとアプリケーションの C# 開発に関する第 5 回の記事を詳しく紹介します。ユーザー グループ情報管理には、一定の参考価値があります。興味のある友人は参照してください。先月、私たちは C# を開発しました。 WeChat ポータルとアプリケーションについて、いくつかのエッセイを書いて共有しましたが、時間の制約のため、しばらくこのシリーズのブログを書き続けていませんでした。これは、この側面の研究をやめたわけではありません。この分野のテクノロジーをより適切に適用するには、基礎となるテクノロジーの開発に集中する必要があります。この記事は、前回の記事に引き続き、グループ管理の開発と応用について紹介します。この記事と前回の記事の内容は、ユーザー情報とグループ情報管理を完全に組み合わせたものになります。
1. ユーザー グループの管理コンテンツユーザー グループの導入は、主にフォロワー リストの管理とさまざまなグループへのメッセージ送信の操作を容易にすることです
1 つの公開アカウントで最大 500 のグループの作成がサポートされます。 1 グループを作成する2 すべてのグループをクエリする
3 ユーザーが属するグループをクエリする4 グループ名を変更する
5 モバイル ユーザー グループ
WeChat のグループ作成の定義は次のとおりです。以下のように表示します。
api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
POSTデータ形式:jsonPOSTデータ例: {"group":{"name":"test"}}
通常返される結果は以下の通りです。
{ "group": { "id": 107, "name": "test" } }
他のインターフェースも同様の方法で、いくつかのパラメーターを URL に POST して、返された Json データを取得します。
/// <summary> /// 分组信息 /// </summary> public class GroupJson : BaseJsonResult { /// <summary> /// 分组id,由微信分配 /// </summary> public int id { get; set; } /// <summary> /// 分组名字,UTF8编码 /// </summary> public string name { get; set; } }
上記のインターフェースの定義を基に、いくつかのインターフェースを定義し、
ユーザー管理
/// <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); }
投稿データを準備したら、データを取得して適切な形式に変換するためのオペレーション コードを詳しく見ていきます。
GroupJson group = null; CreateGroupResult result = JsonHelper<CreateGroupResult>.ConvertJson(url, postData); if (result != null) { group = result.group; }
POST データを適切な形式のエンティティ クラスに変換する操作は、ConvertJson メソッドに配置されます。このメソッドの定義は次のとおりです。これは、私のパブリック クラス ライブラリの補助クラスです。主に最下層を呼び出します。 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 すべてのグループをクエリする
/// <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 ユーザーが所属するグループを問い合わせる
/// <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 は、成功または失敗を示す bool フラグと、String 型の
エラー メッセージ
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; } }
上記の赤い部分の意味は、エンティティクラスに変換する際、WeChatでエラーが定義されている場合、エラーメッセージが記録され、他の例外は処理されない(つまりスローされる)ということです。 )。
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进行用户分组信息的管理了。通过在应用程序中集成相关的接口代码,我们就能够很好的控制我们的关注用户列表和用户分组信息。从而为我们下一步用户的信息推送打好基础。
以上がWeChatポータルとアプリケーションのC#開発 (5) ユーザーグループ情報の管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

“本地用户和组”实用程序内置于“计算机管理”中,可以从控制台访问,也可以独立访问。但是,一些用户发现Windows11中缺少本地用户和组。对于可以访问它的一些人来说,该消息显示,此管理单元可能不适用于此版本的Windows10。若要管理此计算机的用户帐户,请使用“控制面板”中的“用户帐户”工具。该问题已在上一次迭代Windows10中报告,并且通常是由于用户端的问题或疏忽引起的。为什么Windows11中缺少本地用户和组?您运行的是Windows家庭版,本地用户和组在专业版及更高版本上可用。活动

由于权限,并不总是可以访问某些文件夹,在今天的指南中,我们将向您展示如何在Windows11上的旧硬盘驱动器上访问用户文件夹。此过程很简单,但可能需要一段时间,有时甚至数小时,具体取决于驱动器的大小,因此请格外耐心并严格按照本指南中的说明进行操作。为什么我无法访问旧硬盘上的用户文件夹?用户文件夹的所有权属于另一台电脑,因此您无法对其进行修改。除了所有权之外,您对该文件夹没有任何权限。如何打开旧硬盘上的用户文件?1.取得文件夹的所有权并更改权限找到旧的用户目录,右键单击它,然后选择属性。导航到“安

Microsoft开始推出作为Windows503145511H22或更高版本的可选更新向公众KB2。这是第一个默认启用Windows11Moment4功能的更新,包括受支持区域中的WindowsCopilot、对“开始”菜单中项目的预览支持、任务栏的取消分组等。此外,它还修复了Windows11的几个错误,包括导致内存泄漏的潜在性能问题。但具有讽刺意味的是,2023年<>月的可选更新对于尝试安装更新的用户甚至已经安装更新的用户来说都是一场灾难。许多用户不会安装此Wi

微软邀请Canary和Dev频道的WindowsInsider项目成员,测试和体验新版画图(Paint)应用,最新版本号为11.2306.30.0。本次版本更新最值得关注的新功能是一键抠图功能,用户只需要点击一下,就能自动消除背景,凸显画面主体,便于用户后续操作。整个步骤非常简单,用户在新版画图应用中导入图片,然后点击工具栏上“移除背景”(removebackground)按钮,就可以删除图片中的背景,用户也可以使用矩形来选择要消除背景的区域。

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

TranslucentTB是寻求时尚简约桌面外观的Windows11爱好者广泛使用的工具,遇到了障碍。自从发布以来Windows11内部版本22621.1344(22H2)28年2023月日,TranslucentTB对大多数用户不起作用。此错误使用户努力应对其任务栏的有限自定义选项。用户在寻求克服这一挫折的解决方案时,挫败感显而易见。在最近的Windows11更新之后,TranslucentTB无法正常工作的问题已在多个在线平台上广泛报道,包括论坛和社交媒体。用户一直在分享他们的经验,拼命寻找

mysql修改host的方法:1、通过“sudo service mysql stop”停掉mysql服务;2、以安全模式启动mysql,然后重置root密码;3、通过“update user set Host='%' where User='hive';”语句修改host即可。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



