Heim  >  Artikel  >  WeChat-Applet  >  C#-Entwicklung von WeChat-Portalen und -Anwendungen – Messaging für WeChat-Unternehmenskonten (Text, Bilder, Dateien, Sprache, Video, grafische Nachrichten usw.)

C#-Entwicklung von WeChat-Portalen und -Anwendungen – Messaging für WeChat-Unternehmenskonten (Text, Bilder, Dateien, Sprache, Video, grafische Nachrichten usw.)

高洛峰
高洛峰Original
2017-02-18 09:36:282007Durchsuche

Wir wissen, dass das Unternehmenskonto hauptsächlich auf die Bedürfnisse von Unternehmen zugeschnitten ist. Daher ist der Austausch interner Nachrichten sehr wichtig und die Anzahl der gesendeten und beantworteten Nachrichten sollte beträchtlich sein, insbesondere bei großen Unternehmen kombiniert mit dem Unternehmenskonto, um interne Kommunikationsnachrichten zu realisieren. Das Unternehmenskonto zeichnet sich dadurch aus, dass es sich auf Sicherheit und unbegrenztes Messaging konzentriert, was sich sehr gut für die interne Umgebung des Unternehmens eignet. In diesem Artikel wird hauptsächlich erläutert, wie Sie das Unternehmenskonto zum Senden von Text-, Bild-, Datei-, Sprach-, Video-, Grafiknachrichten und anderen Nachrichten verwenden.

1. Funktionen des Unternehmenskontos

Für das Unternehmenskonto gibt es die folgenden Funktionen:

1) Konzentrieren Sie sich auf mehr Sicherheit

– nur Unternehmenskommunikation Nur registrierte Mitglieder können dem Unternehmenskonto folgen, und verschiedene Funktionen wie hierarchische Administratoren und vertrauliche Nachrichten gewährleisten die Sicherheit interner Informationen des Unternehmens.

Unternehmen können eine Selbstverifizierung der Follower-Identitäten einrichten und eine sekundäre Sicherheitsüberprüfung durchführen, um die Sicherheit der Nutzung und Übertragung von Unternehmensinformationen zu gewährleisten.

Wenn ein Mitarbeiter kündigt, kann der Firmenadministrator das Mitglied im Adressbuch löschen, und das Mitglied wird dem Firmenkonto automatisch entfolgen, und der Verlauf des Firmenkontos in WeChat wird ebenfalls gelöscht.

2) Anwendungskonfigurierbarkeit

– Unternehmen können in ihren Unternehmenskonten mehrere Dienstkonten konfigurieren, die eine Verbindung zu verschiedenen Unternehmensanwendungssystemen herstellen können. Nur autorisierte Unternehmensmitglieder können die entsprechende Dienstnummer nutzen.

3) Unbegrenzte Nachrichtenanzahl

– Es gibt keine Einschränkungen beim Senden von Nachrichten und bietet eine vollständige Verwaltungsoberfläche und native WeChat-Funktionen zur Anpassung an komplexe und personalisierte Anwendungsszenarien von Unternehmen.

Unternehmen können proaktiv Nachrichten an Mitarbeiter senden, die Anzahl der Nachrichten ist nicht begrenzt.

4) Bequemer zu verwenden

– Unternehmenskonten verfügen über einen einheitlichen Nachrichteneingang in WeChat, und Benutzer können Unternehmenskontonachrichten bequemer verwalten. WeChat-Adressbücher können auch direkt auf Anwendungen im Unternehmenskonto zugreifen.

2. Inhalt der Unternehmenskontoverwaltung

Der aktuelle Inhalt des Unternehmenskontos kann mithilfe des folgenden hierarchischen Diagramms angezeigt werden, einschließlich Materialverwaltung, passive Antwortnachrichten usw Einzelheiten zur Adressbuchverwaltung, benutzerdefinierten Menüs usw. finden Sie in der Abbildung unten.

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

3. Nachrichten- und Ereignisverarbeitung für Unternehmenskonten

Unternehmenskonten können wie offizielle Konten in Nachrichtenverarbeitung und Ereignisverarbeitung unterteilt werden Bei der Verarbeitung handelt es sich um die folgenden zwei Arten von Verarbeitungsvorgängen: Die gesendeten Nachrichten umfassen Textnachrichten, Bildnachrichten, Dateinachrichten, Videonachrichten, Sprachnachrichten, geografische Textnachrichten, Grafik- und Multimedianachrichten usw.

Die Ereignisverarbeitung umfasst hauptsächlich Follow- und Unfollow-Ereignisse sowie Vorgänge vom Typ „Menüklick“ und „Ansicht“ sowie Ereignisse zur geografischen Standortberichterstattung usw.

Die beiden Arten von Verarbeitungsdiagrammen sind unten dargestellt.

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

4. Nachrichtenverwaltung für Unternehmenskonten

Im Hintergrund für die Unternehmensverwaltung können Sie, genau wie beim offiziellen Konto, das entsprechende sehen Informationsaustauschaufzeichnungen, einschließlich Text, Bilder, geografischer Standort usw., sind wie folgt.

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

Da Nachrichten in verschiedene Typen unterteilt sind, darunter Text, Bild, Datei, Sprache, Video, Bildnachrichten, MpNews usw.

Also müssen wir sie jeweils definieren und kapseln. Das Folgende ist ihr Informationsobjekt-Designdiagramm.

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

Die offizielle Definition von Nachrichten, die von Unternehmenskonten gesendet werden, lautet wie folgt:

Unternehmen können proaktiv Nachrichten an Mitarbeiter senden, Das Nachrichtenvolumen ist nicht eingeschränkt .

Verwenden Sie beim Aufruf der Schnittstelle das HTTPS-Protokoll und das JSON-Datenpaketformat Das Datenpaket muss nicht verschlüsselt werden.

Unterstützt derzeit Text-, Bild-, Sprach-, Video-, Datei-, Grafik- und andere Nachrichtentypen. Zusätzlich zum Nachrichtentyp können auch andere Nachrichtentypen mit Vertraulichkeitsoptionen gesendet werden. Vertrauliche Nachrichten werden mit einem Wasserzeichen versehen und können nur vom Empfänger gelesen werden.

Nehmen wir als Beispiel die gesendete Textnachricht. Ihre Definition lautet wie folgt.

  • SMS

{
   "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

Jede dieser Nachrichten enthält die folgenden Nachrichten, die ihre gemeinsamen Attribute sind:


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


Damit wir eine Basisklasse definieren können werden verwendet, um diese allgemeinen Informationen bequem zu übertragen.


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

    }


Dann können andere Nachrichten diese Basisklasse nacheinander erben, wie unten gezeigt.

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

bildet schließlich das folgende Vererbungsdiagramm.

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

5. Definition und Implementierung der Nachrichtenschnittstelle

Nachdem wir die relevanten Sendeobjekte definiert haben, können wir ihre einheitliche Sendeschnittstelle wie folgt definieren.


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


Schließlich werden Text und andere Arten von Nachrichten gemäß der Schnittstellendefinition implementiert, und der Implementierungscode lautet wie folgt folgt. Beachten Sie, dass der Sendevorgang keinen Aufruf der Verschlüsselungsklasse zur Verschlüsselung erfordert.


    /// <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. Nachrichtensendevorgang und tatsächliche Wirkung

Nach der Definition des entsprechenden Sendeobjekts können wir Führen Sie einheitliche Nachrichtensendevorgänge durch, einschließlich Text-, Bild-, Datei-, Sprach- und anderen Nachrichtentypen. Beachten Sie, dass einige Nachrichten auf den Server hochgeladen und dann basierend auf der Medien-ID gesendet werden müssen.

Der Operationscode zum Senden von Text und Bildern lautet wie folgt.


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


Der endgültige Screenshot des WeChat-Unternehmenskontos ist wie unten dargestellt, einschließlich Texttest, Dateitest, Grafiktest. Stimmtests sind alle normal.

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

Weitere C#-Entwicklung von WeChat-Portalen und -Anwendungen – WeChat-Unternehmenskonto-Messaging (Text, Bilder, Dateien, Sprache, Video, grafische Nachrichten usw.) bitte Achten Sie auf die chinesische PHP-Website für Artikel!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn