ホームページ >WeChat アプレット >WeChatの開発 >WeChat ポータルとアプリケーションの C# 開発 (3) -- テキスト メッセージとグラフィック メッセージへの応答

WeChat ポータルとアプリケーションの C# 開発 (3) -- テキスト メッセージとグラフィック メッセージへの応答

高洛峰
高洛峰オリジナル
2017-02-16 16:32:041522ブラウズ

WeChat アプリケーションは本格的に普及しており、多くの企業がこの情報エクスプレスに乗り出すことを望んでいます。そのため、WeChat 関連の開発について勉強することは計画された取り決めの 1 つとなっています。時間がある。この一連の記事では、WeChat の関連する開発プロセスと関連する経験の概要をステップバイステップの観点から包括的に紹介し、関連する開発プロセスを誰もが理解できるようにしたいと考えています。

前の 2 つのエッセイ「C# での WeChat ポータルとアプリケーションの開発 (1) -- WeChat インターフェイスの使用の開始」と「C# での WeChat ポータルとアプリケーションの開発 (2) -- WeChat メッセージの処理と応答」では、一般的な紹介 WeChat アプリケーションのフレームワーク構築を理解した後、このエッセイでは引き続きこのトピックを紹介し、メッセージ応答におけるテキスト応答とグラフィック応答のプロセスを紹介します。

携帯電話ユーザーへの応答メッセージの送信は、テキスト メッセージへの返信、画像メッセージへの返信、音声メッセージへの返信、ビデオ メッセージへの返信、音楽メッセージへの返信、画像メッセージへの返信など、さまざまな方法に分かれることがわかっています。以下に示すテキスト メッセージなど。

C#开发微信门户及应用(3)--文本消息和图文消息的应答

写真、ビデオ、音声の 3 つの方法のうち、WeChat サーバーに保存されているメディア情報をユーザーに送信するには、通常、認証されたパブリック アカウントがなければこれらのメディア情報を送信することができません。またはサービスアカウントの種類。

1. エンティティ情報の関係と定義

WeChat 開発に関する前回のエッセイでは、メッセージの受信とメッセージへの返信のためのアプリケーション エンティティ クラスを示しました。これらのエンティティ クラスは、アプリケーション レベルでのニーズと開発ニーズに基づいています。はカプセル化されており、返信のメッセージ関係は以下のようになります。

C#开发微信门户及应用(3)--文本消息和图文消息的应答

メッセージ基本クラス BaseMessage のエンティティ クラス定義は次のとおりです。これは日付の整数値を構築し、これらの XML を に渡すために使用される重要な ToXML メソッドも持っています。データ。

    /// <summary>
    /// 基础消息内容    /// </summary>
    [XmlRoot(ElementName = "xml")]    public class BaseMessage
    {        /// <summary>
        /// 初始化一些内容,如创建时间为整形,        /// </summary>
        public BaseMessage()
        {            this.CreateTime = DateTime.Now.DateTimeToInt();
        }        /// <summary>
        /// 开发者微信号        /// </summary>
        public string ToUserName { get; set; }        /// <summary>
        /// 发送方帐号(一个OpenID)        /// </summary>
        public string FromUserName { get; set; }        /// <summary>
        /// 消息创建时间 (整型)        /// </summary>
        public int CreateTime { get; set; }        /// <summary>
        /// 消息类型        /// </summary>
        public string MsgType { get; set; }        public virtual string ToXml()
        {            this.CreateTime = DateTime.Now.DateTimeToInt();//重新更新
            return MyXmlHelper.ObjectToXml(this);
        }

    }

返信のテキスト メッセージ エンティティ クラス コードは次のとおりです。多くの共通のエンティティ属性を継承しており、XML を使用する場合は共通の ToXml メソッドも持っていることがわかります。 、この方法を使用するだけです。

    /// <summary>
    /// 回复文本消息    /// </summary>
    [System.Xml.Serialization.XmlRoot(ElementName = "xml")]    public class ResponseText : BaseMessage
    {        public ResponseText()
        {            this.MsgType = ResponseMsgType.Text.ToString().ToLower();
        }        public ResponseText(BaseMessage info) : this()
        {            this.FromUserName = info.ToUserName;            this.ToUserName = info.FromUserName;
        }        /// <summary>
        /// 内容        /// </summary>        
        public string Content  { get; set; }
    }

グラフィックメッセージオブジェクトクラスResponseNewsには、より多くの情報定義が含まれています

    /// <summary>
    /// 回复图文消息    /// </summary>
    [System.Xml.Serialization.XmlRoot(ElementName = "xml")]    public class ResponseNews : BaseMessage
    {        public ResponseNews()
        {            this.MsgType = ResponseMsgType.News.ToString().ToLower();            this.Articles = new List<ArticleEntity>();
        }        public ResponseNews(BaseMessage info) : this()
        {            this.FromUserName = info.ToUserName;            this.ToUserName = info.FromUserName;
        }        /// <summary>
        /// 图文消息个数,限制为10条以内        /// </summary>
        public int ArticleCount
        {            get
            {                return this.Articles.Count;
            }            set
            {
                ;//增加这个步骤才出来XML内容            }
        }        /// <summary>
        /// 图文列表。        /// 多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应        /// </summary>
        [System.Xml.Serialization.XmlArrayItem("item")]        public List<ArticleEntity> Articles { get; set; }

    }

そして、グラフィックリストコレクション内のオブジェクトも、画像やテキストへのリンクなどのいくつかの情報を含むエンティティタイプです。タイトル等については詳しく説明しません。

2. メッセージの返信処理

テキストメッセージの場合、次の方法で処理できます。

                ResponseText response = new ResponseText(info);
                response.Content = "抱歉,此功能暂未开通。";
                result = response.ToXml();

グラフィック メッセージの場合、より良い結果を返すためにさらにメッセージを入力する必要がある場合があります。

画像のサイズは公式の標準に従うのが最善です。そうしないと、公式の標準は幅が(360,200)ピクセルであるようです。身長

        /// <summary>
        /// 订阅或者显示公司信息        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        private string ShowCompanyInfo(BaseMessage info)
        {            string result = "";            //使用在微信平台上的图文信息(单图文信息)
            ResponseNews response = new ResponseNews(info);
            ArticleEntity entity = new ArticleEntity();
            entity.Title = "广州爱奇迪软件科技有限公司";
            entity.Description = "欢迎关注广州爱奇迪软件--专业的单位信息化软件和软件开发框架提供商,我们立志于为客户提供最好的软件及服务。\r\n";
            entity.Description += "我们是一家极富创新性的软件科技公司,从事研究、开发并销售最可靠的、安全易用的技术产品及优质专业的服务,帮助全球客户和合作伙伴取得成功。\r\n......(此处省略1000字,哈哈)";
            entity.PicUrl = "http://www.php.cn/";
            entity.Url = "http://www.php.cn/";

            response.Articles.Add(entity);
            result = response.ToXml();            return result;
        }

見てみましょう 私の会社のWeChatポータルメニューはクールですよね?

C#开发微信门户及应用(3)--文本消息和图文消息的应答

これら 2 つのタイプ (テキスト メッセージとグラフィック メッセージ) の多くは、主にこれら 2 つの方法を使用して応答します。もちろん、お客様の携帯電話から送信されるさまざまなメッセージに基づいて、次のようなさまざまな処理を実行することもできます。

C#开发微信门户及应用(3)--文本消息和图文消息的应答

全体的な効果を理解するには注意する必要があります。WeChat を使用して QR コードを直接スキャンできます。

C#开发微信门户及应用(3)--文本消息和图文消息的应答

WeChat ポータルとアプリケーションの C# 開発 (3) -- テキスト メッセージとグラフィック メッセージへの応答 関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。