国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 微信小程式 微信開(kāi)發(fā) .Net代開(kāi)發(fā)微信大眾平臺(tái)開(kāi)發(fā)之處理圖片程式碼解析

.Net代開(kāi)發(fā)微信大眾平臺(tái)開(kāi)發(fā)之處理圖片程式碼解析

Mar 19, 2017 pm 05:39 PM
.net 微信公眾號(hào)

這篇文章主要為大家詳細(xì)解析了微信公眾平臺(tái)開(kāi)發(fā)之處理圖片.Net代碼,感興趣的小伙伴們可以參考一下

舉個(gè)例子,有人對(duì)著我們的公共微信號(hào)拍個(gè)照片發(fā)送過(guò)來(lái),然后我們處理這個(gè)照片,比如進(jìn)行ocr識(shí)別字(隨后就會(huì)降到這個(gè)例子),或者人臉識(shí)別,或者拍照取證等,這些功能都是相當(dāng)有用的。那么我們現(xiàn)在就要分析一下這個(gè)過(guò)程。微信平臺(tái)肯定不能幫助我們OCR或者人臉識(shí)別等功能,要做這些功能首先到得到圖片!用戶拍攝的照片首先被上傳到了wenxin的服務(wù)器,然后就有了一個(gè)mediaID,我們用這個(gè)mediaID可以下載到我們自己的服務(wù)器上然后處理,把結(jié)果給微信平臺(tái),由微信平臺(tái)最終反饋給用戶(關(guān)注者)。微信的開(kāi)發(fā)文檔已經(jīng)給出了下載資源的辦法,我改造為.net的,如下:?

/// <summary>
  /// 下載保存多媒體文件,返回多媒體保存路徑
  /// </summary>
  /// <param name="ACCESS_TOKEN"></param>
  /// <param name="MEDIA_ID"></param>
  /// <returns></returns>
  public string GetMultimedia(string ACCESS_TOKEN, string MEDIA_ID)
  {
    string file = string.Empty;
    string content = string.Empty;
    string strpath = string.Empty;
    string savepath = string.Empty;
    string stUrl = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + ACCESS_TOKEN + "&media_id=" + MEDIA_ID;

    HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(stUrl);

    req.Method = "GET";
    using (WebResponse wr = req.GetResponse())
    {
      HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();

      strpath = myResponse.ResponseUri.ToString();
      WriteLog("接收類別://" + myResponse.ContentType);
      WebClient mywebclient = new WebClient();
      savepath = Server.MapPath("image") + "\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next().ToString().Substring(0, 4) + ".jpg";
      WriteLog("路徑://" + savepath);
      try
      {
        mywebclient.DownloadFile(strpath, savepath);
        file = savepath;
      }
      catch (Exception ex)
      {
        savepath = ex.ToString();
      }

    }
    return file;
  }

上面的兩個(gè)參數(shù)很好理解,第一就是ACCESS_TOKEN,之前說(shuō)過(guò)很多了,第二就是在微信服務(wù)器上的資源id,即mediaID。如果我們要下載微信服務(wù)器上的資源總要知道id吧。但是MEDIA_ID又是怎么產(chǎn)生的呢?我首先改造一下之前的消息實(shí)體類,加入MediaId 屬性

 class wxmessage 
  { 
    public string FromUserName { get; set; } 
    public string ToUserName { get; set; } 
    public string MsgType { get; set; } 
    public string EventName { get; set; } 
    public string Content { get; set; }
    public string Recognition { get; set; }
    public string MediaId { get; set; }
    public string EventKey { get; set; } 
  }

然后改造一下GetWxMessage(),給MediaId賦值。


private wxmessage GetWxMessage()
   {
     wxmessage wx = new wxmessage();
     StreamReader str = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8);
     XmlDocument xml = new XmlDocument();
     xml.Load(str);
     wx.ToUserName = xml.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;
     wx.FromUserName = xml.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;
     wx.MsgType = xml.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;
     if (wx.MsgType.Trim() == "text")
     {
       wx.Content = xml.SelectSingleNode("xml").SelectSingleNode("Content").InnerText;
     }
     if (wx.MsgType.Trim() == "event")
     {
       wx.EventName = xml.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;
       wx.EventKey = xml.SelectSingleNode("xml").SelectSingleNode("EventKey").InnerText;
     }
     if (wx.MsgType.Trim() == "voice")
     {
       wx.Recognition = xml.SelectSingleNode("xml").SelectSingleNode("Recognition").InnerText;
     }
    if (wx.MsgType.Trim() == "image")
    {
      wx.MediaId = xml.SelectSingleNode("xml").SelectSingleNode("MediaId").InnerText;
    }
     
     return wx;
   }

如果我們?cè)谛薷囊幌孪⒔邮艿拇a,就可以做到,客戶發(fā)一個(gè)照片給微信平臺(tái),程序檢測(cè)到時(shí)圖片,然后根據(jù)MediaId,調(diào)用GetMultimedia方法把圖片下載到自己的服務(wù)器上。后面的工作嘛,你就想干什么干什么了。
剛才的例子好像是用戶(關(guān)注者),發(fā)圖片,然后通過(guò)微信平臺(tái)到我們的服務(wù)器中,還有一種情況,用戶發(fā)一個(gè)用戶名:例如“hemeng”,然后我需要調(diào)用已經(jīng)存在服務(wù)器中的hemeng頭像的圖片反饋給用戶,這怎么辦呢?如何把我們的圖片傳給微信平臺(tái),然后傳給用戶呢?我們就用到了上傳得方法:

/// <summary>
  /// 上傳多媒體文件,返回 MediaId
  /// </summary>
  /// <param name="ACCESS_TOKEN"></param>
  /// <param name="Type"></param>
  /// <returns></returns>
  public string UploadMultimedia(string ACCESS_TOKEN, string Type)
  {
    string result = "";
    string wxurl = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=" + ACCESS_TOKEN + "&type=" + Type;
    string filepath = Server.MapPath("image") + "\\hemeng80.jpg";(本地服務(wù)器的地址)
    WriteLog("上傳路徑:" + filepath);
    WebClient myWebClient = new WebClient();
    myWebClient.Credentials = CredentialCache.DefaultCredentials;
    try
    {
      byte[] responseArray = myWebClient.UploadFile(wxurl, "POST", filepath);
      result = System.Text.Encoding.Default.GetString(responseArray, 0, responseArray.Length);
      WriteLog("上傳result:" + result);
      UploadMM _mode = JsonHelper.ParseFromJson<UploadMM>(result);
      result = _mode.media_id;
    }
    catch (Exception ex)
    {
      result = "Error:" + ex.Message;
    }
    WriteLog("上傳MediaId:" + result);
    return result;
  }

第二個(gè)參數(shù)如果是圖片"image",可以參照微信的文檔。函數(shù)的返回值就是一個(gè)MediaId,這樣你就可以利用發(fā)送圖片的函數(shù),發(fā)給客戶了,發(fā)送圖片的函數(shù)如下:

protected string sendPicTextMessage(Msg _mode, string MediaId)
  {
    string res = string.Format(@"<xml>
                      <ToUserName><![CDATA[{0}]]></ToUserName>
                      <FromUserName><![CDATA[{1}]]></FromUserName>
                      <CreateTime>{2}</CreateTime>
                      <MsgType><![CDATA[image]]></MsgType>
                      <Image>
                      <MediaId><![CDATA[{3}]]></MediaId>
                      </Image>
                  </xml> ",
      _mode.FromUserName, _mode.ToUserName, DateTime.Now, MediaId);

    return res;
  }

其他視頻,語(yǔ)音的操作也類似,就不再冗余介紹了。有了這些知識(shí)我們是不是能做不少應(yīng)用了?當(dāng)然是肯定的,但是我們的代碼還不夠優(yōu)化,結(jié)構(gòu)也不合理,不著急,我們會(huì)逐漸介紹到的,因?yàn)槲覀冞€沒(méi)有完全了解完微信的強(qiáng)大功能。

以上是.Net代開(kāi)發(fā)微信大眾平臺(tái)開(kāi)發(fā)之處理圖片程式碼解析的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1600
29
PHP教程
1502
276
Scrapy實(shí)現(xiàn)微信公眾號(hào)文章爬取與分析 Scrapy實(shí)現(xiàn)微信公眾號(hào)文章爬取與分析 Jun 22, 2023 am 09:41 AM

Scrapy實(shí)現(xiàn)微信公眾號(hào)文章爬取和分析微信是近年來(lái)備受歡迎的社群媒體應(yīng)用,在其中運(yùn)作的公眾號(hào)也扮演著非常重要的角色。眾所周知,微信公眾號(hào)是一個(gè)資訊和知識(shí)的海洋,因?yàn)槠渲忻總€(gè)公眾號(hào)都可以發(fā)布文章、圖文訊息等資訊。這些資訊可以被廣泛地應(yīng)用在許多領(lǐng)域中,例如媒體報(bào)道、學(xué)術(shù)研究等。那麼,本篇文章將介紹如何使用Scrapy框架來(lái)實(shí)現(xiàn)微信公眾號(hào)文章的爬取與分析。 Scr

微信公眾號(hào)認(rèn)證和不認(rèn)證有哪些差別 微信公眾號(hào)認(rèn)證和不認(rèn)證有哪些差別 Sep 19, 2023 pm 02:15 PM

微信公眾號(hào)認(rèn)證和不認(rèn)證的差異在認(rèn)證識(shí)別、功能權(quán)限、推播頻率、介面權(quán)限和使用者信任度等方面。詳細(xì)介紹:1、認(rèn)證標(biāo)識(shí),認(rèn)證公眾號(hào)會(huì)獲得官方頒發(fā)的認(rèn)證標(biāo)識(shí),即藍(lán)色V標(biāo)誌,這個(gè)標(biāo)誌可以增加公眾號(hào)的可信度和權(quán)威性,讓用戶更容易辨別真實(shí)的官方公眾號(hào); 2、功能權(quán)限,認(rèn)證公眾號(hào)相比未認(rèn)證的公眾號(hào)擁有更多的功能和權(quán)限,例如認(rèn)證公眾號(hào)可以申請(qǐng)開(kāi)通微信支付功能,實(shí)現(xiàn)在線支付和商業(yè)化運(yùn)營(yíng)等等。

分享幾個(gè).NET開(kāi)源的AI和LLM相關(guān)專案框架 分享幾個(gè).NET開(kāi)源的AI和LLM相關(guān)專案框架 May 06, 2024 pm 04:43 PM

當(dāng)今人工智慧(AI)技術(shù)的發(fā)展如火如荼,它們?cè)诟鱾€(gè)領(lǐng)域都展現(xiàn)了巨大的潛力和影響力。今天大姚給大家分享4個(gè).NET開(kāi)源的AI模型LLM相關(guān)的專案框架,希望能為大家提供一些參考。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一種開(kāi)源的軟體開(kāi)發(fā)工具包(SDK),旨在將大型語(yǔ)言模型(LLM)如OpenAI、Azure

C#的就業(yè)前景如何 C#的就業(yè)前景如何 Oct 19, 2023 am 11:02 AM

無(wú)論您是初學(xué)者還是有經(jīng)驗(yàn)的專業(yè)人士,掌握C#將為您的職業(yè)發(fā)展鋪平道路。

Python中的爬蟲(chóng)實(shí)戰(zhàn):微信公眾號(hào)爬蟲(chóng) Python中的爬蟲(chóng)實(shí)戰(zhàn):微信公眾號(hào)爬蟲(chóng) Jun 10, 2023 am 09:01 AM

Python是一種優(yōu)雅的程式語(yǔ)言,具有強(qiáng)大的資料處理和網(wǎng)路爬蟲(chóng)功能。在這個(gè)數(shù)位時(shí)代,網(wǎng)路上充滿了大量的數(shù)據(jù),爬蟲(chóng)已成為獲取數(shù)據(jù)的重要手段,因此,Python爬蟲(chóng)在數(shù)據(jù)分析和挖掘方面有著廣泛的應(yīng)用。在本文中,我們將介紹如何使用Python爬蟲(chóng)來(lái)取得微信公眾號(hào)文章資訊。微信公眾號(hào)是一種流行的社交媒體平臺(tái),用於線上發(fā)布文章,是許多公司和自媒體推廣和行銷的重要工

.NET Core快速入門(mén)教程 1、開(kāi)篇:說(shuō)說(shuō).NET Core的那些事兒 .NET Core快速入門(mén)教程 1、開(kāi)篇:說(shuō)說(shuō).NET Core的那些事兒 May 07, 2025 pm 04:54 PM

一、.NETCore的起源談到.NETCore,就不能不提它的前身.NET。當(dāng)年Java風(fēng)頭正盛,微軟也對(duì)Java青睞有加,Windows平臺(tái)上的Java虛擬機(jī)就是微軟依據(jù)JVM標(biāo)準(zhǔn)開(kāi)發(fā)的,據(jù)稱是當(dāng)時(shí)性能最佳的Java虛擬機(jī)。然而,微軟有自己的小算盤(pán),試圖將Java與Windows平臺(tái)捆綁,增加一些Windows特有的功能。 Sun公司對(duì)此不滿,導(dǎo)致雙方關(guān)係破裂,微軟隨後推出了.NET。 .NET從誕生之初就借鑒了Java的許多特性,並在語(yǔ)言特性和窗體開(kāi)發(fā)等方面逐漸超越了Java。 Java在1.6版

用PHP建構(gòu)一個(gè)微信公眾號(hào)API介面 用PHP建構(gòu)一個(gè)微信公眾號(hào)API介面 May 13, 2023 pm 12:01 PM

在當(dāng)今網(wǎng)路時(shí)代,微信公眾號(hào)成為了越來(lái)越多企業(yè)的重要行銷管道。想要自己的微信公眾號(hào)實(shí)現(xiàn)更多的功能,常常需要寫(xiě)對(duì)應(yīng)的介面。本文將以PHP語(yǔ)言為例,介紹如何建構(gòu)一個(gè)微信公眾號(hào)API介面。一、前置準(zhǔn)備在編寫(xiě)微信公眾號(hào)API介面之前,需要開(kāi)發(fā)者擁有一個(gè)微信公眾號(hào)的帳號(hào),並且在微信公眾平臺(tái)中申請(qǐng)開(kāi)發(fā)者介面權(quán)限。申請(qǐng)成功後,可以取得相關(guān)的開(kāi)發(fā)者AppID和AppSe

C#.NET:使用.NET生態(tài)系統(tǒng)構(gòu)建應(yīng)用程序 C#.NET:使用.NET生態(tài)系統(tǒng)構(gòu)建應(yīng)用程序 Apr 27, 2025 am 12:12 AM

如何利用.NET構(gòu)建應(yīng)用?使用.NET構(gòu)建應(yīng)用可以通過(guò)以下步驟實(shí)現(xiàn):1)了解.NET基礎(chǔ)知識(shí),包括C#語(yǔ)言和跨平臺(tái)開(kāi)發(fā)支持;2)學(xué)習(xí)核心概念,如.NET生態(tài)系統(tǒng)的組件和工作原理;3)掌握基本和高級(jí)用法,從簡(jiǎn)單控制臺(tái)應(yīng)用到復(fù)雜的WebAPI和數(shù)據(jù)庫(kù)操作;4)熟悉常見(jiàn)錯(cuò)誤與調(diào)試技巧,如配置和數(shù)據(jù)庫(kù)連接問(wèn)題;5)應(yīng)用性能優(yōu)化與最佳實(shí)踐,如異步編程和緩存。

See all articles