Maison  >  Article  >  Applet WeChat  >  Développement C# de portails et applications WeChat - messagerie pour les comptes d'entreprise WeChat (texte, images, fichiers, voix, vidéo, messages graphiques, etc.)

Développement C# de portails et applications WeChat - messagerie pour les comptes d'entreprise WeChat (texte, images, fichiers, voix, vidéo, messages graphiques, etc.)

高洛峰
高洛峰original
2017-02-18 09:36:282050parcourir

Nous savons que le compte d'entreprise est principalement conçu pour répondre aux besoins des entreprises, l'échange de messages internes est donc très important, et le nombre de messages envoyés et répondus doit être considérable, en particulier pour les grandes entreprises, afin qu'il puisse être combiné avec le compte d'entreprise pour réaliser des messages de communication internes. Le compte d'entreprise a la particularité de se concentrer sur la sécurité et la messagerie illimitée, ce qui est très adapté à l'environnement interne de l'entreprise. Cet article explique principalement comment utiliser le compte d'entreprise pour envoyer du texte, des images, des fichiers, des messages vocaux, vidéo, graphiques et autres messages.

1. Caractéristiques du compte d'entreprise

Pour le compte d'entreprise, il existe les fonctionnalités suivantes :

1) Concentrez-vous sur plus sûr

– uniquement communication d'entreprise Seuls les membres enregistrés peuvent suivre le compte de l'entreprise, et diverses fonctionnalités telles que les administrateurs hiérarchiques et les messages confidentiels assurent la sécurité des informations internes de l'entreprise.

Les entreprises peuvent mettre en place une auto-vérification de l'identité des abonnés et effectuer une vérification de sécurité secondaire pour garantir la sécurité de l'utilisation et de la transmission des informations de l'entreprise.

Si un employé démissionne, l'administrateur de l'entreprise peut supprimer le membre du carnet d'adresses, et le membre ne suivra plus automatiquement le compte d'entreprise, et l'historique du compte d'entreprise dans WeChat sera également effacé.

2) Configurabilité de l'application

– Les entreprises peuvent configurer plusieurs comptes de service dans leurs comptes d'entreprise, qui peuvent se connecter à différents systèmes d'application d'entreprise. Seuls les membres d'entreprise autorisés peuvent utiliser le numéro correspondant.

3) Messages illimités

– Il n'y a aucune restriction sur l'envoi de messages, et il fournit une interface de gestion complète et des capacités natives WeChat pour s'adapter aux scénarios d'application complexes et personnalisés des entreprises.

Les entreprises peuvent envoyer des messages de manière proactive aux employés, le nombre de messages n'est pas limité.

4) Plus pratique à utiliser

– Les comptes d'entreprise disposent d'une entrée de messages unifiée dans WeChat et les utilisateurs peuvent gérer les messages des comptes d'entreprise plus facilement. Les carnets d'adresses WeChat peuvent également accéder directement aux applications du compte d'entreprise.

2. Contenu de l'interface de gestion du compte d'entreprise

Le contenu actuel du compte d'entreprise peut être affiché à l'aide du diagramme hiérarchique suivant, y compris la gestion du matériel, les messages de réponse passive, pour Pour plus de détails sur la gestion du carnet d'adresses, les menus personnalisés, etc., veuillez consulter le schéma ci-dessous.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

3. Traitement des messages et des événements du compte d'entreprise

Le compte d'entreprise, comme le compte officiel, peut être divisé en traitement des messages et des événements. traitement Traitement, voici leurs deux types d'opérations de traitement, c'est-à-dire que les messages envoyés comprennent des messages texte, des messages image, des messages fichier, des messages vidéo, des messages vocaux, des messages texte géographiques, des messages graphiques et multimédias, etc.

Le traitement des événements comprend principalement les événements de suivi et de désabonnement, ainsi que les opérations de type de clic de menu et de type d'affichage, ainsi que les événements de rapport de localisation géographique, etc.

Les deux types de diagrammes de traitement sont présentés ci-dessous.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

4. Gestion des messages du compte d'entreprise

Dans l'arrière-plan de la gestion d'entreprise, tout comme le compte officiel, vous pouvez voir le correspondant échange d'informations Les enregistrements, y compris les textes, les images, la situation géographique, etc., sont les suivants.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

Étant donné que les messages sont divisés en plusieurs types, notamment texte, image, fichier, voix, vidéo, actualités illustrées, MpNews, etc.

Nous devons donc les définir et les encapsuler respectivement. Voici leur schéma de conception d'objet d'information.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

La définition officielle des messages envoyés par les comptes d'entreprise est la suivante :

Les entreprises peuvent envoyer des messages de manière proactive aux employés, le volume des messages n'est pas restreint .

Lors de l'appel de l'interface, utilisez le protocole HTTPS et le format de paquet de données JSON Le paquet de données n'a pas besoin d'être crypté.

Prend actuellement en charge le texte, l'image, la voix, la vidéo, les fichiers, les graphiques et d'autres types de messages. En plus du type d'actualité, d'autres types de messages peuvent être envoyés avec des options de confidentialité. Les messages confidentiels seront filigranés et ne pourront être lus que par le destinataire.

Prenons comme exemple le message texte envoyé. Sa définition est la suivante.

  • message texte

{
   "touser": "UserID1|UserID2|UserID3",
   "toparty": " PartyID1 | PartyID2 ",
   "totag": " TagID1 | TagID2 ",
   "msgtype": "text",
   "agentid": "1",
   "text": {
       "content": "Holiday Request For Pony(http://www.php.cn/)"
   },
   "safe":"0"
}

参数 必须 说明
touser UserID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
toparty PartyID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数
totag TagID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数
msgtype 消息类型,此时固定为:text
agentid 企业应用的id,整型。可在应用的设置页面查看
content 消息内容
safe 表示是否是保密消息,0表示否,1表示是,默认0

Chacun de ces messages contiendra les messages suivants, qui sont leurs attributs communs :


    touser": "UserID1|UserID2|UserID3",   "toparty": " PartyID1 | PartyID2 ",   "totag": " TagID1 | TagID2 ",   "msgtype": "text",   "agentid": "1",


On peut donc définir une classe de base sont utilisés pour transporter facilement ces informations communes.


    /// <summary>
    /// 企业号发送消息的基础消息内容    /// </summary>
    public class CorpSendBase
    {      
        /// <summary>
        /// UserID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送        /// </summary>
        public string touser { get; set; }        /// <summary>
        /// PartyID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数        /// </summary>
        public string toparty { get; set; }        /// <summary>
        /// TagID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数        /// </summary>
        public string totag { get; set; }        /// <summary>
        /// 消息类型        /// </summary>
        public string msgtype { get; set; }        /// <summary>
        /// 企业应用的id,整型。可在应用的设置页面查看        /// </summary>
        public string agentid { get; set; }        /// <summary>
        /// 表示是否是保密消息,0表示否,1表示是,默认0        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]        public string safe { get; set; }

    }


Ensuite, d'autres messages peuvent hériter de cette classe de base un par un, comme indiqué ci-dessous.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

formera à terme le schéma d'héritage ci-dessous.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

5. Définition et mise en œuvre de l'interface de message

Après avoir défini les objets d'envoi pertinents, nous pouvons définir son interface d'envoi unifiée, comme suit Show.


    /// <summary>
    /// 企业号消息管理接口定义    /// </summary>
    public interface ICorpMessageApi
    {        
        /// <summary>
        /// 发送消息。        /// 需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败。        /// </summary>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        CommonResult SendMessage(string accessToken, CorpSendBase data);
    }


Enfin, le texte et d'autres types de messages seront implémentés selon la définition de l'interface, et le code d'implémentation est le même suit. Notez que le processus d'envoi ne nécessite pas d'appeler la classe de chiffrement pour le chiffrement .


    /// <summary>
    /// 企业号消息管理实现类    /// </summary>
    public class CorpMessageApi : ICorpMessageApi
    {        /// <summary>
        /// 发送消息。        /// 需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败。        /// </summary>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public CommonResult SendMessage(string accessToken, CorpSendBase data)
        {        
            CommonResult result = new CommonResult();            string urlFormat = "http://www.php.cn/{0}";            var url = string.Format(urlFormat, accessToken);            var postData = data.ToJson();            //数据不用加密发送
            CorpSendResult sendResult = CorpJsonHelper<CorpSendResult>.ConvertJson(url, postData);            if (sendResult != null)
            {
                result.Success = (sendResult.errcode == CorpReturnCode.请求成功);
                result.ErrorMessage = string.Format("invaliduser:{0},invalidparty:{1},invalidtag:{2}",
                    sendResult.invaliduser, sendResult.invalidparty, sendResult.invalidtag);
            }            return result;
        }
    }


6. Opération d'envoi du message et effet réel

Après avoir défini l'objet d'envoi correspondant, nous pouvons effectuer des opérations d'envoi de messages unifiés, notamment du texte, des images, des fichiers, des messages vocaux et d'autres types de messages. Notez que certains messages doivent être téléchargés sur le serveur, puis envoyés en fonction du mediaId.

Le code d'opération pour l'envoi de texte et d'images est le suivant.


        private void btnSendText_Click(object sender, EventArgs e)
        {            //发送文本内容
            ICorpMessageApi bll = new CorpMessageApi();

            CorpSendText text = new CorpSendText("API 中文测试(http://www.php.cn/)");
            text.touser = "wuhuacong";
            text.toparty = "4";//部门ID
            text.totag = "0";

            text.safe = "0";
            text.agentid = "0";

            CommonResult result = bll.SendMessage(token, text);            if (result != null)
            {
                Console.WriteLine("发送消息:{0} {1} {2}", text.text.content, (result.Success ? "成功" : "失败"), result.ErrorMessage);
            }
        }        private void btnSendImage_Click(object sender, EventArgs e)
        {
            btnUpload_Click(sender, e);            if (!string.IsNullOrEmpty(image_mediaId))
            {                //发送图片内容
                ICorpMessageApi bll = new CorpMessageApi();

                CorpSendImage image = new CorpSendImage(image_mediaId);
                CommonResult result = bll.SendMessage(token, image);                if (result != null)
                {
                    Console.WriteLine("发送图片消息:{0} {1} {2}", image_mediaId, (result.Success ? "成功" : "失败"), result.ErrorMessage);
                }
            }
        }


La capture d'écran finale sur le compte d'entreprise WeChat est la suivante, comprenant le test de texte, le test de fichier, le test graphique, les tests vocaux sont tous normaux.

C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等) C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)

Plus de développement C# de portails et d'applications WeChat - Messagerie de compte d'entreprise WeChat (texte, images, fichiers, voix, vidéo, messages graphiques, etc.) liée S'il vous plaît faites attention au site Web PHP chinois pour les articles !


Déclaration:
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