ホームページ  >  記事  >  バックエンド開発  >  WeChat ポータルとアプリケーションの C# 開発 (3) テキスト メッセージと画像メッセージの応答

WeChat ポータルとアプリケーションの C# 開発 (3) テキスト メッセージと画像メッセージの応答

黄舟
黄舟オリジナル
2017-06-18 10:27:541984ブラウズ

この記事では、主に WeChat ポータルとアプリケーションの C# 開発の第 2 部を詳しく紹介し、WeChat テキスト メッセージとグラフィック メッセージへの応答について説明します。興味のある友人は参考にしてください。

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

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

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

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

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

WeChat 開発に関する前回のエッセイでは、メッセージの受信 とメッセージへの返信のためのアプリケーション エンティティ クラスを示しました。たとえば、応答メッセージの関係は次のようになります。

メッセージ基本クラス 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);
    }

  }

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


  /// <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.iqidi.com/WeixinImage/company.png";
      entity.Url = "http://www.iqidi.com";

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

      return result;
    }

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

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

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

以上がWeChat ポータルとアプリケーションの C# 開発 (3) テキスト メッセージと画像メッセージの応答の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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