国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
1. Contenu de gestion des groupes d'utilisateurs
2. Mise en place de l'interface de gestion des groupes d'utilisateurs
3. Appel de l'interface de regroupement d'utilisateurs
Maison Applet WeChat Développement WeChat Développement C# du portail et de l'application WeChat (5) - Gestion des informations des groupes d'utilisateurs

Développement C# du portail et de l'application WeChat (5) - Gestion des informations des groupes d'utilisateurs

Feb 16, 2017 pm 04:37 PM

Le mois dernier, j'ai présenté le développement de portails et d'applications WeChat en C# et j'ai écrit plusieurs essais à partager. En raison de contraintes de temps, je n'ai pas continué à écrire cette série de blogs depuis un moment. mais nous avons continué à explorer la technologie dans ce domaine en profondeur afin de mieux l'appliquer, nous nous sommes concentrés sur le développement de la technologie sous-jacente. Cet article poursuit l'introduction de l'article précédent, présentant principalement le développement et l'application de la gestion de groupe. Le contenu de cet article et de l'article précédent constituent une combinaison complète de gestion des informations sur les utilisateurs et des groupes.

1. Contenu de gestion des groupes d'utilisateurs

L'introduction des groupes d'utilisateurs vise principalement à faciliter la gestion des listes de abonnés et l'opération d'envoi de messages à différents groupes. Un compte public prend en charge jusqu'à 500 personnes. groupes.

La gestion des groupes d'utilisateurs comprend les aspects suivants?:

1 Créer un groupe
2 Interroger tous les groupes
3 Interroger le groupe auquel appartient l'utilisateur
4 Modifier le nom du groupe
5 groupes d'utilisateurs mobiles

La définition de WeChat de la création de groupes est la suivante.

http請求方式:?POST(請使用https協(xié)議)
https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKENPOST數據格式:json
POST數據例子:{"group":{"name":"test"}}

Le résultat normalement renvoyé est le suivant.

{????"group":?{????????"id":?107,?
????????"name":?"test"
????}
}

D'autres interfaces fonctionnent de la même manière, en POSTant certains paramètres dans l'URL pour obtenir les données Json renvoyées.

Les informations sur la classe d'entité de GroupJson définies dans l'essai précédent sont les suivantes.

????///?<summary>
????///?分組信息
????///?</summary>????public?class?GroupJson?:?BaseJsonResult
????{????????///?<summary>
????????///?分組id,由微信分配
????????///?</summary>
????????public?int?id?{?get;?set;?}????????///?<summary>
????????///?分組名字,UTF8編碼
????????///?</summary>????????public?string?name?{?get;?set;?}
????}

Sur la base des définitions des interfaces ci-dessus, j'ai défini plusieurs interfaces et les ai résumées dans l'interface API de gestion des utilisateurs .

????????///?<summary>
????????///?查詢所有分組????????///?</summary>
????????///?<param name="accessToken">調用接口憑證</param>
????????///?<returns></returns>
????????List<GroupJson>?GetGroupList(string?accessToken);???????????????????????
????????///?<summary>
????????///?創(chuàng)建分組????????///?</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. Mise en place de l'interface de gestion des groupes d'utilisateurs

2.1 Création d'utilisateurs Groupe

Afin d'analyser comment mettre en ?uvre l'opération de données POST de création de groupes d'utilisateurs, comprenons étape par étape le processus spécifique de création d'utilisateurs.

Vous devez d'abord créer des informations de classe d'entité définies dynamiquement, qui contiennent plusieurs attributs qui doivent être mentionnés, comme indiqué ci-dessous.

????????????string?url?=?string.Format("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????group?=?new
????????????????{
????????????????????name?=?name
????????????????}
????????????};????????????string?postData?=?data.ToJson();

Parmi eux, nous convertissons l'objet en une opération de données Json appropriée et le mettons dans la méthode d'extension ToJson. Ceci est principalement pour faciliter la dynamique. entités définies. La conversion de classe du contenu Json implique principalement l'appel de l'opération de numéro de série de Json.NET.

????????///?<summary>
????????///?把對象為json字符串????????///?</summary>
????????///?<param name="obj">待序列號對象</param>
????????///?<returns></returns>
????????public?static?string?ToJson(this?object?obj)
????????{????????????return?JsonConvert.SerializeObject(obj,?Formatting.Indented);
????????}

Après avoir préparé les données Post, nous examinerons de plus près le code d'opération pour obtenir les données et les convertir dans un format approprié.

????????????GroupJson?group?=?null;
????????????CreateGroupResult?result?=?JsonHelper<CreateGroupResult>.ConvertJson(url,?postData);????????????if?(result?!=?null)
????????????{
????????????????group?=?result.group;
????????????}

L'opération des données POST et leur conversion en une classe d'entité au format approprié est placée dans la méthode ConvertJson. , à l'intérieur de HttpHelper se trouve une classe auxiliaire de ma bibliothèque de classes publique. Elle appelle principalement la méthode objet httpWebRequest sous-jacente pour soumettre des données et obtenir le résultat de retour.

????????///?<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;
????????}

De cette fa?on, la fonction opérationnelle complète pour la création de groupes d'utilisateurs est la suivante.

????????///?
????????///?創(chuàng)建分組????????///?
????????///?調用接口憑證
????????///?分組名稱
????????///?
????????public?GroupJson?CreateGroup(string?accessToken,?string?name)
????????{????????????string?url?=?string.Format("http://m.miracleart.cn/{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 Interroger tous les groupes

Interroger tous les groupes, vous pouvez obtenir tous les groupes sur le serveur , c'est-à-dire l'ID et le nom de chaque groupe.

????????///?<summary>
????????///?查詢所有分組????????///?</summary>
????????///?<param name="accessToken">調用接口憑證</param>
????????///?<returns></returns>
????????public?List<GroupJson>?GetGroupList(string?accessToken)
????????{????????????string?url?=?string.Format("http://m.miracleart.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;
????????}

2.3 Interroger le groupe auquel appartient l'utilisateur

Chaque utilisateur appartient à un groupe, la valeur par défaut est Non groupé Dans ce groupe, nous pouvons obtenir les informations du groupe de l'utilisateur via l'API, c'est-à-dire obtenir l'ID du groupe d'utilisateurs.

????????///?<summary>
????????///?查詢用戶所在分組????????///?</summary>
????????///?<param name="accessToken">調用接口憑證</param>
????????///?<param name="openid">用戶的OpenID</param>
????????///?<returns></returns>
????????public?int?GetUserGroupId(string?accessToken,?string?openid)
????????{????????????string?url?=?string.Format("http://m.miracleart.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;
????????}

2.4 Modifier le nom du groupe

Vous pouvez également ajuster le groupe dans lequel se trouve l'utilisateur en pratique . Le code est le suivant.

????????///?<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("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????group?=?new
????????????????{
????????????????????id?=?id,
????????????????????name?=?name
????????????????}
????????????};????????????string?postData?=?data.ToJson();????????????return?Helper.GetExecuteResult(url,?postData);
????????}

La valeur de retour CommonResult ici est une classe d'entité qui contient un indicateur booléen de succès ou d'échec, et un message d'erreur de type String (si si n'importe lequel).

Pour le corps de la fonction GetExecuteResult, il s'agit principalement d'une fonction qui soumet des données, puis obtient les résultats et les traite en fonction des résultats.

????????///?<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;
????????}??
????}

La signification de la partie rouge ci-dessus est que lors de la conversion en classe d'entité, si l'erreur est définie dans WeChat, alors le message d'erreur et d'autres exceptions seront enregistrées. Je ne m'en occupe pas (c'est-à-dire le jette).

2.5 Déplacer un utilisateur vers un nouveau groupe

L'opération de déplacement d'un utilisateur vers un nouveau groupe est similaire à la section ci-dessus, veuillez consulter le code pour plus de détails.

????????///?<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("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????openid?=?openid,
????????????????to_groupid?=?to_groupid
????????????};????????????string?postData?=?data.ToJson();????????????return?Helper.GetExecuteResult(url,?postData);
????????}

3. Appel de l'interface de regroupement d'utilisateurs

La section ci-dessus définit et implémente le regroupement d'utilisateurs Diverses interfaces et tous les codes liés à l'utilisateur ont été affichés sans réserve. Son fonctionnement d'appel est illustré dans le code suivant (code de test).

????????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,?"創(chuàng)建測試分組");????????????if?(info?!=?null)
????????????{????????????????string?tips?=?string.Format("GroupId:{0}?GroupName:{1}",?info.id,?info.name);
????????????????Console.WriteLine(tips);????????????????string?newName?=?"創(chuàng)建測試修改";
????????????????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?=?"創(chuàng)建測試修改";

????????????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));
????????????}
????????}

Après avoir compris le code ci-dessus et les règles d'appel, nous pouvons gérer les informations des groupes d'utilisateurs via l'API. En intégrant le code d'interface pertinent dans l'application, nous pouvons avoir un bon contr?le sur notre liste d'utilisateurs suivante et les informations sur les groupes d'utilisateurs. Cela constituera une base solide pour notre prochaine diffusion d’informations sur les utilisateurs.

Pour plus de développement C# des portails et applications WeChat (5) --Gestion des informations des groupes d'utilisateurs, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276