ホームページ  >  記事  >  WeChat アプレット  >  .net WeChat パブリック アカウントの開発 - 基本インターフェイス

.net WeChat パブリック アカウントの開発 - 基本インターフェイス

高洛峰
高洛峰オリジナル
2017-02-22 15:45:381711ブラウズ

この記事では、次のような WeChat パブリック アカウントの開発における基本的なインターフェイスの使用方法について説明します。
(1) 許可トークン (AccessToken) の取得
(2) WeChat サーバー アドレスの取得
(3) アップロードとダウンロードマルチメディア ファイル;
( 4) QR コードを作成して表示します。
(5) 長いリンクを短いリンクに変換します。
オープンソースプロジェクトのアドレス: http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount
この記事のソースコードのアドレス: http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/blob /master /xrwang.net/Example/BasicInterface.aspx.cs
この記事のデモ アドレス: http://xrwang.net/Example/BasicInterface.aspx
デモの効果は次のとおりです:

.net WeChat パブリック アカウントの開発 - 基本インターフェイス

1 Getライセンス トークン
AccessToken クラス アクセス許可トークンの関連プロパティとメソッドをカプセル化します。
(注: OAuthAccessToken は、Web ページ認証トークンの関連メソッドをカプセル化します。)
属性は次のとおりです:
access_token - トークン文字列
expires_in - 有効期限 (単位: 秒)
静的メソッドは次のとおりです:
Get - 許可トークンの取得

/// <summary>
    /// 获取许可令牌
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetAccessToken_Click(object sender,EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        AccessToken token = AccessToken.Get(userName);
        txtAccessToken.Text = token != null ? token.access_token : "获取许可令牌失败。";
    }

2 取得WeChat サーバー アドレス
ServerAddresses クラスは、サーバー アドレスを取得するためのプロパティとメソッドをカプセル化します。
属性は次のとおりです:
ip_list—サーバー アドレス配列
静的メソッドは次のとおりです:
Get—サーバー アドレスの取得

/// <summary>
    /// 获取微信服务器地址
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetServerAddress_Click(object sender, EventArgs e)
    {
        ErrorMessage errorMessage;
        ServerAddresses addresses = ServerAddresses.Get(out errorMessage);
        if (errorMessage.IsSuccess && addresses.ip_list != null)
        {
            StringBuilder sb = new StringBuilder();
            foreach (string ip in addresses.ip_list)
                sb.AppendFormat("{0},", ip);
            txtServerAddress.Text = sb.ToString();
        }
        else
            txtServerAddress.Text = string.Format("获取微信服务器地址失败。{0}", errorMessage);
    }

3 マルチメディア ファイルのアップロードとダウンロード
MultiMediaHelper クラスは、マルチメディア ファイルの関連メソッドをカプセル化します。
静的メソッドは次のとおりです:
Upload - マルチメディア ファイルをアップロードします
Download - マルチメディア ファイルをダウンロードします
GetDownloadUrl - マルチメディア ファイルのアドレスを取得します
GetVideoMediaId - メッセージ グループ内のビデオ メディア ID を取得します

/// <summary>
    /// 上传多媒体文件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        MultiMediaTypeEnum type = (MultiMediaTypeEnum)Enum.Parse(typeof(MultiMediaTypeEnum), lbMultiMediaType.SelectedValue);
        string filename = fileUpload.FileName;
        byte[] bytes = fileUpload.FileBytes;
        ErrorMessage errorMessage;
        MultiMediaUploadResult result = MultiMediaHelper.Upload(userName, type, filename, bytes, out errorMessage);
        if (errorMessage.IsSuccess && result != null)
            hlShowMultiMedia.NavigateUrl = MultiMediaHelper.GetDownloadUrl(AccessToken.Get(userName).access_token, result.MediaId);
        else
            hlShowMultiMedia.NavigateUrl = string.Format("javascript:alert(&#39;上传多媒体文件失败。\r\n{0}&#39;);", errorMessage);
    }

上传多媒体文件,并生成下载链接的示例

4 QR コードを作成して表示します
QrCodeクラスは、QR コードに関連するプロパティとメソッドをカプセル化します。
属性には以下が含まれます:
ticket - QR コードのチケット
expire_seconds - QR コードの有効時間 (単位: 秒)
url - QR コード画像を解析した後のアドレス
静的メソッドには以下が含まれます:
Create - QR コードを作成、さまざまなオーバーロードメソッドでさまざまなタイプの QR コードを作成できます
GetUrl - QR コード画像のアドレスを取得します

/// <summary>
    /// 创建二维码
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCreateQrCode_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        string strSceneId = txtSceneId.Text;
        QrCode qrcode=null;
        ErrorMessage errorMessage;
        if( cbIsTemple.Checked)
        {
            int expireSeconds = int.Parse(txtExpireSeconds.Text);
            int sceneId;
            if (int.TryParse(strSceneId, out sceneId))
                qrcode = QrCode.Create(userName, expireSeconds, sceneId, out errorMessage);
            else
                errorMessage = new ErrorMessage(ErrorMessage.ExceptionCode, "场景值id必须为整数。");
        }
        else
        {
            int sceneId;
            if (int.TryParse(strSceneId, out sceneId))
                qrcode = QrCode.Create(userName, sceneId, out errorMessage);
            else
                qrcode = QrCode.Create(userName, strSceneId, out errorMessage);
        }
        if (errorMessage.IsSuccess && qrcode != null)
            imgQrCode.ImageUrl = QrCode.GetUrl(qrcode.ticket);
        else
            imgQrCode.ImageUrl = "";
    }

5 長いリンクから短いリンクへ

ShortUrl は、長いリンクを短いリンクに変換するメソッドをカプセル化します。
静的メソッドは次のとおりです:
取得 - 長いリンクを短いリンクに変換します

/// <summary>
    /// 获取短链接
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetShortUrl_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        ErrorMessage errorMessage;
        string shortUrl = ShortUrl.Get(userName, txtLongUrl.Text, out errorMessage);
        if (errorMessage.IsSuccess && string.IsNullOrWhiteSpace(shortUrl))
            txtShortUrl.Text = shortUrl;
        else
            txtShortUrl.Text = string.Format("获取短链接失败。{0}", errorMessage);
    }

この記事をお読みいただきありがとうございます。お役に立てば幸いです。

その他の .net WeChat パブリック アカウント開発 - 基本インターフェイス関連の記事については、PHP 中国語 Web サイトに注目してください。


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