先月、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_TOKENPOST数据格式:json POST数据例子:{"group":{"name":"test"}}
通常返される結果は以下の通りです。
{ "group": { "id": 107, "name": "test" } }
他のインターフェースも同様の方法で、いくつかのパラメーターを URL に POST して、返された Json データを取得します。
前回のエッセイで定義したGroupJsonのエンティティクラス情報は以下の通りです。
/// <summary> /// 分组信息 /// </summary> public class GroupJson : BaseJsonResult { /// <summary> /// 分组id,由微信分配 /// </summary> public int id { get; set; } /// <summary> /// 分组名字,UTF8编码 /// </summary> public string name { get; set; } }
上記のインターフェースの定義に基づいて、いくつかのインターフェースを定義し、ユーザー管理 API インターフェースにまとめました。
/// <summary> /// 查询所有分组 /// </summary> /// <param>调用接口凭证 /// <returns></returns> List<groupjson> GetGroupList(string accessToken); /// <summary> /// 创建分组 /// </summary> /// <param>调用接口凭证 /// <param>分组名称 /// <returns></returns> GroupJson CreateGroup(string accessToken, string name); /// <summary> /// 查询用户所在分组 /// </summary> /// <param>调用接口凭证 /// <param>用户的OpenID /// <returns></returns> int GetUserGroupId(string accessToken, string openid); /// <summary> /// 修改分组名 /// </summary> /// <param>调用接口凭证 /// <param>分组id,由微信分配 /// <param>分组名字(30个字符以内) /// <returns></returns> CommonResult UpdateGroupName(string accessToken, int id, string name); /// <summary> /// 移动用户分组 /// </summary> /// <param>调用接口凭证 /// <param>用户的OpenID /// <param>分组id /// <returns></returns> CommonResult MoveUserToGroup(string accessToken, string openid, int to_groupid);</groupjson>
2. ユーザーグループ管理インターフェースの実装
2.1 ユーザーグループの作成
ユーザーグループを作成する POST データ操作を実装する方法を分析するために、段階的に学習しましょう。ユーザーを作成する具体的なプロセス。
まず、動的に定義されたエンティティ クラス情報を作成する必要があります。これには、以下に示すように、言及する必要があるいくつかの属性が含まれています。
string url = string.Format("http://www.php.cn/{0}", accessToken); var data = new { group = new { name = name } }; string postData = data.ToJson();
その中で、オブジェクトを適切な Json データ操作に変換し、それを拡張メソッド ToJson に置きます。これは主にシリアルを呼び出すために、動的に定義されたエンティティ クラスの Json コンテンツへの変換を容易にするためです。 Json.NET が動作する数。
/// <summary> /// 把对象为json字符串 /// </summary> /// <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; }</creategroupresult>
POSTデータを適切な形式のエンティティクラスに変換する操作は、ConvertJsonメソッド内に配置されます。このメソッドの定義は次のとおりです。私のパブリッククラスライブラリの補助クラスです。これは主に、基礎となる httpWebRequest オブジェクト メソッドを呼び出してデータを送信し、戻り結果を取得します。
/// <summary> /// 转换Json字符串到具体的对象 /// </summary> /// <param>返回Json数据的链接地址 /// <param>POST提交的数据 /// <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; }</t>
このように、ユーザーグループを作成するための完全な操作関数は次のとおりです。
////// 创建分组 /// /// 调用接口凭证 /// 分组名称 ///public GroupJson CreateGroup(string accessToken, string name) { string url = string.Format("http://www.php.cn/{0}", accessToken); var data = new { group = new { name = name } }; string postData = data.ToJson(); GroupJson group = null; CreateGroupResult result = JsonHelper .ConvertJson(url, postData); if (result != null) { group = result.group; } return group; }
2.2 すべてのグループをクエリする
すべてのグループをクエリすると、サーバー上のすべてのグループ、つまり各グループの ID と名前を取得できます。
/// <summary> /// 查询所有分组 /// </summary> /// <param>调用接口凭证 /// <returns></returns> public List<groupjson> GetGroupList(string accessToken) { string url = string.Format("http://www.php.cn/{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; }</grouplistjsonresult></groupjson></groupjson></groupjson>
2.3 ユーザーが属しているグループをクエリします
各ユーザーはグループに属しており、デフォルトはグループ化されていません このグループでは、API を通じてユーザーのグループ情報を取得できます。ユーザーグループIDを取得します。
/// <summary> /// 查询用户所在分组 /// </summary> /// <param>调用接口凭证 /// <param>用户的OpenID /// <returns></returns> public int GetUserGroupId(string accessToken, string openid) { string url = string.Format("http://www.php.cn/{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; }</groupidjsonresult>
2.4 グループ名を変更する
実際にユーザーが所属するグループを調整することもできます。操作コードは次のとおりです。
/// <summary> /// 修改分组名 /// </summary> /// <param>调用接口凭证 /// <param>分组id,由微信分配 /// <param>分组名字(30个字符以内) /// <returns></returns> public CommonResult UpdateGroupName(string accessToken, int id, string name) { string url = string.Format("http://www.php.cn/{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>网页地址 /// <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; } }</errorjsonresult></errorjsonresult>
上記の赤い部分の意味は、エンティティクラスに変換する際、WeChatでエラーが定義されている場合、エラーメッセージが記録され、他の例外(つまり、投げます)。
2.5 ユーザーを新しいグループに移動する
ユーザーを新しいグループに移動する操作は上記のセクションと似ています。詳細についてはコードを参照してください。
/// <summary> /// 移动用户分组 /// </summary> /// <param>调用接口凭证 /// <param>用户的OpenID /// <param>分组id /// <returns></returns> public CommonResult MoveUserToGroup(string accessToken, string openid, int to_groupid) { string url = string.Format("http://www.php.cn/{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)); } }</groupjson>
上記のコードと呼び出しルールを理解すると、API を介してユーザー グループ情報を管理できます。関連するインターフェイス コードをアプリケーションに統合することで、次のユーザー リストとユーザー グループ情報を適切に制御できます。これは、ユーザー情報を次に推進するための強固な基盤を築くことになります。
WeChat ポータルおよびアプリケーションの C# 開発 (5) -- ユーザー グループ情報管理の詳細については、PHP 中国語 Web サイトの関連記事にご注目ください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
