Jadual Kandungan
微信公众平台开发教程(四) 实例入门:机器人(附源码)
一、功能介绍
二、具体实现
2、签名认证和分发请求
3、处理请求,并响应
1)关注
 2)问候
3)查询天气
Rumah applet WeChat pembangunan WeChat 微信机器人开发教程的实例详解

微信机器人开发教程的实例详解

May 05, 2017 am 10:17 AM

微信公众平台开发教程(四) 实例入门:机器人(附源码)

 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团。

一、功能介绍

通过微信公众平台实现在线客服机器人功能。主要的功能包括:简单对话、查询天气等服务。

这里只是提供比较简单的功能,重在通过此实例来说明公众平台的具体研发过程。只是一个简单DEMO,如果需要的话可以在此基础上进行扩展。

当然后续我们还会推出比较复杂的应用实例。 

二、具体实现

1、提供访问接口

这里不再赘述,参照上一章,微信公众账号开发教程(二) 基础框架搭建
www.cnblogs.com/yank/p/3392394.html

2、签名认证和分发请求

这里不再赘述,参照上一章,微信公众账号开发教程(二) 基础框架搭建
www.cnblogs.com/yank/p/3392394.html

3、处理请求,并响应

1)关注

当微信用户关注公众账号时,可以给其适当的提示。可以是欢迎词,可以是帮助提示。

直接上代码:

    class EventHandler : IHandler
    {        /// <summary>
        /// 请求的xml        /// </summary>
        private string RequestXml { get; set; }        /// <summary>
        /// 构造函数        /// </summary>
        /// <param name="requestXml"></param>
        public EventHandler(string requestXml)
        {            this.RequestXml = requestXml;
        }        /// <summary>
        /// 处理请求        /// </summary>
        /// <returns></returns>
        public string HandleRequest()
        {            string response = string.Empty;
            EventMessage em = EventMessage.LoadFromXml(RequestXml);            if (em.Event.Equals("subscribe",StringComparison.OrdinalIgnoreCase))
            {                //回复欢迎消息
                TextMessage tm = new TextMessage();
                tm.ToUserName = em.FromUserName;
                tm.FromUserName = em.ToUserName;
                tm.CreateTime = Common.GetNowTime();
                tm.Content = "欢迎您关注***,我是大哥大,有事就问我,呵呵!\n\n";
                response = tm.GenerateContent();
            }            return response;
        }
    }
Salin selepas log masuk

2)问候

简单的交流问候,比如你好、帮助等等,跟我们使用微信聊天一样,不过回应是由我们的程序响应。具体功能,可以根据自己的需要进行添加。
微信本来就是沟通的平台。这个案例,可以用于在线服务机器人,类似于淘宝的客服机器人,可是我们这个是微信版的。呵呵
其实,很简单,获取请求消息,根据关键字来匹配回应。当然这里可能要做的工作很多,如何支持智能匹配,如何支持模糊匹配等。

代码如下:

    /// <summary>
    /// 文本信息处理类    /// </summary>
    public class TextHandler : IHandler
    {        /// <summary>
        /// 请求的XML        /// </summary>
        private string RequestXml { get; set; }        /// <summary>
        /// 构造函数        /// </summary>
        /// <param name="requestXml">请求的xml</param>
        public TextHandler(string requestXml)
        {            this.RequestXml = requestXml;
        }        /// <summary>
        /// 处理请求        /// </summary>
        /// <returns></returns>
        public string HandleRequest()
        {            string response = string.Empty;
            TextMessage tm = TextMessage.LoadFromXml(RequestXml);            string content = tm.Content.Trim();            if (string.IsNullOrEmpty(content))
            {
                response = "您什么都没输入,没法帮您啊,%>_<%。";
            }            else
            {                if (content.StartsWith("tq", StringComparison.OrdinalIgnoreCase))
                {                    string cityName = content.Substring(2).Trim();
                    response = WeatherHelper.GetWeather(cityName);
                }                else
                {
                    response = HandleOther(content);
                }
            }
            tm.Content = response;            //进行发送者、接收者转换
            string temp = tm.ToUserName;
            tm.ToUserName = tm.FromUserName;
            tm.FromUserName = temp;
            response = tm.GenerateContent();            return response;
        }        /// <summary>
        /// 处理其他消息        /// </summary>
        /// <param name="tm"></param>
        /// <returns></returns>
        private string HandleOther(string requestContent)
        {            string response = string.Empty;            if (requestContent.Contains("你好") || requestContent.Contains("您好"))
            {
                response = "您也好~";
            }            else if (requestContent.Contains("傻"))
            {
                response = "我不傻!哼~ ";
            }            else if (requestContent.Contains("逼") || requestContent.Contains("操"))
            {
                response = "哼,你说脏话! ";
            }            else if (requestContent.Contains("是谁"))
            {
                response = "我是大哥大,有什么能帮您的吗?~";
            }            else if (requestContent.Contains("再见"))
            {
                response = "再见!";
            }            else if (requestContent.Contains("bye"))
            {
                response = "Bye!";
            }            else if (requestContent.Contains("谢谢"))
            {
                response = "不客气!嘿嘿";
            }            else if (requestContent == "h" || requestContent == "H" || requestContent.Contains("帮助"))
            {
                response = @"查询天气,输入tq 城市名称\拼音\首字母";
            }            else
            {
                response = "您说的,可惜,我没明白啊,试试其他关键字吧。";
            }            return response;
        }
    }
Salin selepas log masuk

3)查询天气

这个功能需要请求实时查询的,请求官方的天气发布网站,然后解析其返回值,按照我们需要的格式,组织天气信息,最后发送给微信客户。
采用文本消息方式处理。
用户请求,只需输入:tq 城市名称/拼音/首字母,即可获取消息。

回复的消息:(以北京为例)

北京
2013年11月6日 星期三
今天:(17℃~4℃)晴北风4-5级转3-4级4-5级转3-4级
24小时穿衣指数:天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。
明天:(14℃~3℃)晴转多云微风小于3级
48小时穿衣指数:天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。
Salin selepas log masuk

来看源码吧:

    class WeatherHelper
    {        /// <summary>
        /// 城市集合字段        /// </summary>
        private static Dictionary<string, City> mCities;        /// <summary>
        /// 城市集合        /// </summary>
        public static Dictionary<string, City> Cities
        {            get
            {                if (mCities == null)
                {
                    LoadCities();
                }                return mCities;
            }
        }        /// <summary>
        /// 加载城市        /// </summary>
        private static void LoadCities()
        {
            mCities = new Dictionary<string, City>();
            mCities.Clear();
            mCities.Add("101010100", new City() { Code = "101010100", Name = "北京", PinYin = "beijing", FristLetter = "bj" });
            mCities.Add("101020100", new City() { Code = "101020100", Name = "上海", PinYin = "shanghai", FristLetter = "sh" });
            mCities.Add("101200101", new City() { Code = "101200101", Name = "武汉", PinYin = "wuhai", FristLetter = "wh" });
            
        }        /// <summary>
        /// 获取城市的天气        /// </summary>
        /// <param name="name">城市名称、拼音或首字母</param>
        /// <returns></returns>
        public static string GetWeather(string name)
        {            string result = string.Empty;            string cityCode = string.Empty;            //获取城市编码
            IEnumerable<string> codes = from item in Cities                                        where item.Value != null
                                              && (item.Value.Name.Equals(name, StringComparison.OrdinalIgnoreCase) 
                                                    || item.Value.PinYin.Equals(name, StringComparison.OrdinalIgnoreCase) 
                                                    || item.Value.FristLetter.Equals(name, StringComparison.OrdinalIgnoreCase))                                        select item.Value.Code;            if (codes != null && codes.Count() > 0)
            {
                cityCode = codes.First<string>();
            }            //http请求,获取天气
            if (!string.IsNullOrEmpty(cityCode))
            {                string url = "http://m.weather.com.cn/data/{0}.html";
                url = string.Format(url, cityCode);
                WebRequest request = HttpWebRequest.Create(url);                //超时时间为:2秒
                request.Timeout = 2000;
                request.Credentials = CredentialCache.DefaultCredentials;
                WebResponse response = request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);                string weahterInfo = reader.ReadToEnd();                if (string.IsNullOrEmpty(weahterInfo))
                {
                    result = "暂时没有取到天气数据,请稍后再试";
                }                else
                {
                    XmlDocument doc = JsonConvert.DeserializeXmlNode(weahterInfo);                    if (doc != null)
                    {
                        XmlNode node = doc.DocumentElement;                        if (node != null)
                        {
                            StringBuilder builder = new StringBuilder();
                            builder.Append(node["city"].InnerText).Append("\n");
                            builder.Append(node["date_y"].InnerText).Append(" ").Append(node["week"].InnerText).Append("\n");
                            builder.Append("今天:").Append("(").Append(node["temp1"].InnerText).Append(")").Append(node["weather1"].InnerText).Append(node["wind1"].InnerText).Append(node["fl1"].InnerText).Append("\n");
                            builder.Append("24小时穿衣指数:").Append(node["index_d"].InnerText).Append("\n");
                            builder.Append("明天:").Append("(").Append(node["temp2"].InnerText).Append(")").Append(node["weather2"].InnerText).Append(node["wind2"].InnerText).Append(node["fl2"].InnerText).Append("\n");
                            builder.Append("48小时穿衣指数:").Append(node["index48_d"].InnerText).Append("\n");
                            result = builder.ToString();
                        }
                    }                    #region 天气json数据格式                    /*
                 
                {
   "weatherinfo": {
       "city": "北京", 
       "city_en": "beijing", 
       "date_y": "2013年11月4日", 
       "date": "", 
       "week": "星期一", 
       "fchh": "11", 
       "cityid": "101010100", 
       "temp1": "17℃~5℃", 
       "temp2": "16℃~5℃", 
       "temp3": "18℃~4℃", 
       "temp4": "17℃~5℃", 
       "temp5": "14℃~6℃", 
       "temp6": "14℃~2℃", 
       "tempF1": "62.6℉~41℉", 
       "tempF2": "60.8℉~41℉", 
       "tempF3": "64.4℉~39.2℉", 
       "tempF4": "62.6℉~41℉", 
       "tempF5": "57.2℉~42.8℉", 
       "tempF6": "57.2℉~35.6℉", 
       "weather1": "晴转多云", 
       "weather2": "多云", 
       "weather3": "多云转晴", 
       "weather4": "晴转多云", 
       "weather5": "多云转阴", 
       "weather6": "阴转晴", 
       "img1": "0", 
       "img2": "1", 
       "img3": "1", 
       "img4": "99", 
       "img5": "1", 
       "img6": "0", 
       "img7": "0", 
       "img8": "1", 
       "img9": "1", 
       "img10": "2", 
       "img11": "2", 
       "img12": "0", 
       "img_single": "0", 
       "img_title1": "晴", 
       "img_title2": "多云", 
       "img_title3": "多云", 
       "img_title4": "多云", 
       "img_title5": "多云", 
       "img_title6": "晴", 
       "img_title7": "晴", 
       "img_title8": "多云", 
       "img_title9": "多云", 
       "img_title10": "阴", 
       "img_title11": "阴", 
       "img_title12": "晴", 
       "img_title_single": "晴", 
       "wind1": "微风", 
       "wind2": "微风", 
       "wind3": "微风", 
       "wind4": "微风", 
       "wind5": "微风", 
       "wind6": "北风4-5级", 
       "fx1": "微风", 
       "fx2": "微风", 
       "fl1": "小于3级", 
       "fl2": "小于3级", 
       "fl3": "小于3级", 
       "fl4": "小于3级", 
       "fl5": "小于3级", 
       "fl6": "4-5级", 
       "index": "较冷", 
       "index_d": "建议着大衣、呢外套加毛衣、卫衣等服装。体弱者宜着厚外套、厚毛衣。因昼夜温差较大,注意增减衣服。", 
       "index48": "冷", 
       "index48_d": "天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。", 
       "index_uv": "中等", 
       "index48_uv": "弱", 
       "index_xc": "适宜", 
       "index_tr": "适宜", 
       "index_co": "舒适", 
       "st1": "17", 
       "st2": "5", 
       "st3": "17", 
       "st4": "5", 
       "st5": "18", 
       "st6": "6", 
       "index_cl": "适宜", 
       "index_ls": "适宜", 
       "index_ag": "极不易发"
   }
}                */
                    #endregion

                }
            }            else
            {
                result = "没有获取到该城市的天气,请确定输入了正确的城市名称,如\&#39;北京\&#39;或者\&#39;beijing\&#39;或者\&#39;bj\&#39;";
            }            //返回
            return result;
        }        /// <summary>
        /// 内部类:城市        /// </summary>
        internal class City
        {            /// <summary>
            /// 编码            /// </summary>
            public string Code { get; set; }            /// <summary>
            /// 名称            /// </summary>
            public string Name { get; set; }            /// <summary>
            /// 拼音            /// </summary>
            public string PinYin { get; set; }            /// <summary>
            /// 拼音首字母            /// </summary>
            public string FristLetter { get; set; }
        }
    }
Salin selepas log masuk

【相关推荐】

1. 微信公众号平台源码下载

2. 阿狸子订单系统源码

Atas ialah kandungan terperinci 微信机器人开发教程的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ameca generasi kedua ada di sini! Dia boleh berkomunikasi dengan penonton dengan lancar, ekspresi mukanya lebih realistik, dan dia boleh bercakap berpuluh-puluh bahasa. Ameca generasi kedua ada di sini! Dia boleh berkomunikasi dengan penonton dengan lancar, ekspresi mukanya lebih realistik, dan dia boleh bercakap berpuluh-puluh bahasa. Mar 04, 2024 am 09:10 AM

Robot humanoid Ameca telah dinaik taraf kepada generasi kedua! Baru-baru ini, di Persidangan Komunikasi Mudah Alih Sedunia MWC2024, robot Ameca paling canggih di dunia muncul semula. Di sekitar venue, Ameca menarik sejumlah besar penonton. Dengan restu GPT-4, Ameca boleh bertindak balas terhadap pelbagai masalah dalam masa nyata. "Jom kita menari." Apabila ditanya sama ada dia mempunyai emosi, Ameca menjawab dengan beberapa siri mimik muka yang kelihatan sangat hidup. Hanya beberapa hari yang lalu, EngineeredArts, syarikat robotik British di belakang Ameca, baru sahaja menunjukkan hasil pembangunan terkini pasukan itu. Dalam video tersebut, robot Ameca mempunyai keupayaan visual dan boleh melihat serta menerangkan keseluruhan bilik dan objek tertentu. Perkara yang paling menakjubkan ialah dia juga boleh

2 bulan kemudian, robot humanoid Walker S boleh melipat pakaian 2 bulan kemudian, robot humanoid Walker S boleh melipat pakaian Apr 03, 2024 am 08:01 AM

Editor Laporan Kuasa Mesin: Wu Xin Versi domestik robot humanoid + pasukan model besar menyelesaikan tugas operasi bahan fleksibel yang kompleks seperti melipat pakaian buat kali pertama. Dengan pelancaran Figure01, yang mengintegrasikan model besar berbilang modal OpenAI, kemajuan berkaitan rakan domestik telah menarik perhatian. Baru semalam, UBTECH, "stok robot humanoid nombor satu" China, mengeluarkan demo pertama robot humanoid WalkerS yang disepadukan secara mendalam dengan model besar Baidu Wenxin, menunjukkan beberapa ciri baharu yang menarik. Kini, WalkerS, diberkati oleh keupayaan model besar Baidu Wenxin, kelihatan seperti ini. Seperti Rajah01, WalkerS tidak bergerak, tetapi berdiri di belakang meja untuk menyelesaikan satu siri tugasan. Ia boleh mengikut perintah manusia dan melipat pakaian

Bagaimanakah AI boleh menjadikan robot lebih autonomi dan boleh disesuaikan? Bagaimanakah AI boleh menjadikan robot lebih autonomi dan boleh disesuaikan? Jun 03, 2024 pm 07:18 PM

Dalam bidang teknologi automasi perindustrian, terdapat dua titik panas terkini yang sukar diabaikan: kecerdasan buatan (AI) dan Nvidia. Jangan ubah maksud kandungan asal, perhalusi kandungan, tulis semula kandungan, jangan teruskan: “Bukan itu sahaja, kedua-duanya berkait rapat, kerana Nvidia tidak terhad kepada unit pemprosesan grafik asalnya (GPU ), ia sedang mengembangkan GPUnya Teknologi ini meluas ke bidang kembar digital dan berkait rapat dengan teknologi AI yang baru muncul "Baru-baru ini, NVIDIA telah mencapai kerjasama dengan banyak syarikat industri, termasuk syarikat automasi industri terkemuka seperti Aveva, Rockwell Automation, Siemens. dan Schneider Electric, serta Teradyne Robotics dan syarikat MiR dan Universal Robotsnya. Baru-baru ini, Nvidiahascoll

Robot pertama yang menyelesaikan tugas manusia secara autonomi muncul, dengan lima jari fleksibel dan kelajuan manusia luar biasa, dan model besar menyokong latihan angkasa maya Robot pertama yang menyelesaikan tugas manusia secara autonomi muncul, dengan lima jari fleksibel dan kelajuan manusia luar biasa, dan model besar menyokong latihan angkasa maya Mar 11, 2024 pm 12:10 PM

Minggu ini, FigureAI, sebuah syarikat robotik yang dilaburkan oleh OpenAI, Microsoft, Bezos, dan Nvidia, mengumumkan bahawa ia telah menerima hampir $700 juta dalam pembiayaan dan merancang untuk membangunkan robot humanoid yang boleh berjalan secara bebas dalam tahun hadapan. Dan Optimus Prime Tesla telah berulang kali menerima berita baik. Tiada siapa yang meragui bahawa tahun ini akan menjadi tahun apabila robot humanoid meletup. SanctuaryAI, sebuah syarikat robotik yang berpangkalan di Kanada, baru-baru ini mengeluarkan robot humanoid baharu, Phoenix. Pegawai mendakwa bahawa ia boleh menyelesaikan banyak tugas secara autonomi pada kelajuan yang sama seperti manusia. Pheonix, robot pertama di dunia yang boleh menyelesaikan tugas secara autonomi pada kelajuan manusia, boleh mencengkam, menggerakkan dan meletakkan setiap objek secara elegan di sisi kiri dan kanannya dengan perlahan. Ia boleh mengenal pasti objek secara autonomi

Cloud Whale Xiaoyao 001 robot menyapu dan mengemop mempunyai 'otak'! | Cloud Whale Xiaoyao 001 robot menyapu dan mengemop mempunyai 'otak'! | Apr 26, 2024 pm 04:22 PM

Robot menyapu dan mengemop adalah salah satu perkakas rumah pintar yang paling popular di kalangan pengguna sejak beberapa tahun kebelakangan ini. Kemudahan operasi yang dibawanya, atau bahkan keperluan tanpa operasi, membolehkan orang yang malas membebaskan tangan mereka, membolehkan pengguna "membebaskan" daripada kerja rumah harian dan menghabiskan lebih banyak masa untuk perkara yang mereka sukai Peningkatan kualiti hidup dalam bentuk yang menyamar. Menunggang kegilaan ini, hampir semua jenama perkakas rumah di pasaran membuat robot menyapu dan mengemop mereka sendiri, menjadikan keseluruhan pasaran robot menyapu dan mengemop sangat meriah. Walau bagaimanapun, perkembangan pesat pasaran pasti akan membawa bahaya tersembunyi: banyak pengeluar akan menggunakan taktik laut mesin untuk menduduki lebih banyak bahagian pasaran dengan cepat, menyebabkan banyak produk baru tanpa sebarang titik peningkatan mereka adalah model "matryoshka" Tidak keterlaluan. Walau bagaimanapun, tidak semua robot menyapu dan mengemop

Robot humanoid boleh melakukan sihir, biarkan pasukan program Gala Festival Musim Bunga mengetahui lebih lanjut Robot humanoid boleh melakukan sihir, biarkan pasukan program Gala Festival Musim Bunga mengetahui lebih lanjut Feb 04, 2024 am 09:03 AM

Dalam sekelip mata, robot telah belajar melakukan sihir? Kelihatan ia mula-mula mengambil sudu air di atas meja, membuktikan kepada penonton bahawa tiada apa-apa di dalamnya... Kemudian, ia meletakkan objek seperti telur di tangannya, kemudian meletakkan sudu air itu semula di atas meja. dan mula "menjampi"... ...Apabila ia mengambil sudu air sekali lagi, satu keajaiban berlaku. Telur yang pada asalnya dimasukkan hilang, dan benda yang melompat keluar berubah menjadi bola keranjang... Mari lihat aksi berterusan sekali lagi: △ Animasi ini menunjukkan satu set aksi pada kelajuan 2x, dan ia mengalir dengan lancar hanya dengan menonton video berulang kali pada kelajuan 0.5x bolehkah ia berfungsi Akhirnya, saya menemui petunjuk: jika kelajuan tangan saya lebih pantas, saya mungkin dapat menyembunyikannya daripada musuh. Beberapa netizen mengeluh bahawa kemahiran sihir robot itu lebih tinggi daripada mereka sendiri: Mag adalah orang yang melakukan sihir ini untuk kami.

Sepuluh robot humanoid membentuk masa depan Sepuluh robot humanoid membentuk masa depan Mar 22, 2024 pm 08:51 PM

10 robot humanoid berikut sedang membentuk masa depan kita: 1. ASIMO: Dibangunkan oleh Honda, ASIMO ialah salah satu robot humanoid yang paling terkenal. Berdiri setinggi 4 kaki dan seberat 119 paun, ASIMO dilengkapi dengan penderia termaju dan keupayaan kecerdasan buatan yang membolehkannya menavigasi persekitaran yang kompleks dan berinteraksi dengan manusia. Fleksibiliti ASIMO menjadikannya sesuai untuk pelbagai tugas, daripada membantu orang kurang upaya kepada menyampaikan pembentangan di acara. 2. Pepper: Dicipta oleh Softbank Robotics, Pepper bertujuan untuk menjadi teman sosial bagi manusia. Dengan wajah ekspresif dan keupayaan untuk mengenali emosi, Pepper boleh mengambil bahagian dalam perbualan, membantu dalam tetapan runcit, dan juga memberikan sokongan pendidikan. Lada punya

Universiti Amerika membuka pertandingan kejuruteraan 'The Legend of Zelda: Tears of the Kingdom' untuk pelajar membina robot Universiti Amerika membuka pertandingan kejuruteraan 'The Legend of Zelda: Tears of the Kingdom' untuk pelajar membina robot Nov 23, 2023 pm 08:45 PM

"The Legend of Zelda: Tears of the Kingdom" menjadi permainan Nintendo terpantas dalam sejarah Bukan sahaja Zonav Technology membawakan pelbagai kandungan komuniti "Zelda Creator", tetapi ia juga menjadi satu kursus kejuruteraan baru di Universiti. Maryland (UMD). Tulis Semula: The Legend of Zelda: Tears of the Kingdom ialah salah satu permainan terpantas Nintendo dalam rekod. Bukan sahaja Teknologi Zonav membawa kandungan komuniti yang kaya, ia juga telah menjadi sebahagian daripada kursus kejuruteraan baharu di Universiti Maryland pada musim gugur ini, Profesor Madya Ryan D. Sochol dari Universiti Maryland membuka kursus yang dipanggil ".

See all articles