WeChat development implements responses to various messages
Mar 08, 2017 pm 04:40 PMContinuing with the part we did not complete before, we can now implement simple text interaction. This article will implement responses to various messages and events.
Project GitHub address: https://github.com/Andyahui/xgyxsh_WeiXin
SDK’s GitHub address: https:/ /github.com/JeffreySu/WeiXinMPSDK/
SDK official introduction blog: http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course- index.html
1: Implement simple replies to various messages
Based on the current underlying framework, it is not difficult for us to see other response mechanisms It's not difficult, it's just that we are not very familiar with this SDK; now that text replies have been implemented, we found that there are many re-methods when rewriting the OnTextRequest method, as follows.
This is how we need to implement various message mechanisms and event mechanisms. You can respond to various POST requests sent by the WeChat server by implementing corresponding methods. If the website has a lot of needs, the business logic is processed in these methods.
1.1: Processing voice requests;
????????public?override?IResponseMessageBase?OnVoiceRequest(RequestMessageVoice?requestMessage) ????????{ ????????????var?responseVoice?=?base.CreateResponseMessage<responsemessagevoice>(); ????????????responseVoice.Voice=new?Voice() ????????????{???????????????? ????????????????MediaId?=?requestMessage.MediaId ????????????};??????????? ????????????return?responseVoice; ????????}</responsemessagevoice>
The voice request sent by our client first goes to the OnVoiceRequest method. If there is no reply, Reply to the user's message in the default reply method. In the above method test, we created a voice reply, which replies with its own voice by default. MediaId is the ID obtained from the multimedia file uploaded through the material management interface. In fact, the WeChat server saves the ID of the voice sent by the user;
1.2: Process image requests;
????????public?override?IResponseMessageBase?OnImageRequest(RequestMessageImage?requestMessage) ????????{ ????????????var?responseImage?=?base.CreateResponseMessage<responsemessagetext>(); ????????????responseImage.Content?=?"來自圖片,ahui"; ????????????return?responseImage; ????????}</responsemessagetext>
The user sends an image request, and then we reply with the text. If we need complex logic, we can add it here ourselves. Among them, base.CreateResponseMessage
1.3: Processing geographical location requests;
????????public?override?IResponseMessageBase?OnLocationRequest(RequestMessageLocation?requestMessage) ????????{ ????????????//返回的是圖文消息,是關(guān)于地址的圖文消息。 ????????????var?responseLocation?=?base.CreateResponseMessage<responsemessagenews>(); ????????????var?markersList?=?new?List<baidumarkers>(); ????????????markersList.Add(new?BaiduMarkers() ????????????{ ????????????????Size=BaiduMarkerSize.m, ????????????????Color?="red", ????????????????Label="A", ????????????????Latitude?=requestMessage.Location_X, ????????????????Longitude=requestMessage.Location_Y, ????????????}); ????????????var?mapUrl?=?BaiduMapHelper.GetBaiduStaticMap(requestMessage.Location_Y,requestMessage.Location_X,1,13,markersList); ????????????responseLocation.Articles.Add(new?Article() ????????????{ ????????????????Description?=?string.Format("您剛才發(fā)送了地理位置信息。Location_X:{0},Location_Y:{1},Scale:{2},標簽:{3}",requestMessage.Location_X,requestMessage.Location_Y,requestMessage.Scale,requestMessage.Label), ????????????????PicUrl?=?"http://pic.cnblogs.com/avatar/679140/20141128195544.png", ????????????????Title="張輝的地圖", ????????????????Url?=?mapUrl ????????????}); ????????????return?responseLocation; ????????}</baidumarkers></responsemessagenews>
Processing the geographical location request, the user sends his or her geographical location, and we can send any information we want to the user. The above is the interface that calls Baidu Maps to re-send its own information.
1.4: Processing link requests;
????????public?override?IResponseMessageBase?OnLinkRequest(RequestMessageLink?requestMessage) ????????{ ????????????var?responseLink?=?base.CreateResponseMessage<responsemessagenews>(); ????????????responseLink.Articles.Add(new?Article() ????????????{ ????????????????Title="處理鏈接來的請求。", ????????????????Description?=requestMessage.Description, ????????????????PicUrl?=?"http://pic.cnblogs.com/avatar/679140/20141128195544.png", ????????????????Url=requestMessage.Url ????????????}); ????????????return?responseLink; ????????}</responsemessagenews>
Regarding links, they also reply to graphic messages. Many of the previous ones responded to graphic messages, but We need to pay attention to the parameters inside so that it can comply with WeChat's reply content.
2: Reply to POST event
During the interaction between WeChat users and official accounts, some user operations will cause the WeChat server to send requests to the development team in the form of events On the website server set up by the author, certain events allow us to reply to user information; the following is to handle these.
Event push of WeChat developer documentation:
http://mp.weixin.qq.com/wiki/7/9f89d962eba4c5924ed95b513ba69d9b.html
The representatives with the Event_ logo are the event methods. We need to rewrite these methods to implement our reply. There are many introductions here that you can read on the official website.
2.1: Subscription event
????????///?<summary> ????????///?訂閱事件 ????????///?</summary> ????????///?<param> ????????///?<returns></returns> ????????public?override?IResponseMessageBase?OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe?requestMessage) ????????{ ????????????var?responseSubscribe?=?base.CreateResponseMessage<responsemessagetext>(); ????????????responseSubscribe.Content?=?"歡迎訂閱,張輝歡迎您。"; ????????????return?responseSubscribe; ????????}</responsemessagetext>
The reply is text content, which is conducive to testing. We can add any logic and can also reply Any image, voice, text, etc. types. This depends on the needs of the project.
2.2: Event push when clicking on the menu to pull the message
????????///?<summary> ????????///?點擊事件 ????????///?</summary> ????????///?<param> ????????///?<returns></returns> ????????public?override?IResponseMessageBase?OnEvent_ClickRequest(RequestMessageEvent_Click?requestMessage) ????????{ ????????????var?respondeEvert?=?base.CreateResponseMessage<responsemessagetext>(); ????????????respondeEvert.Content?=?"點擊事件,"; ????????????return?respondeEvert; ????????}</responsemessagetext>
Here you may not know what this click event is, this is Set on the menu bar, we will implement the function of the menu bar later.
2.3: Event push when clicking the menu jump link
????????public?override?IResponseMessageBase?OnEvent_ViewRequest(RequestMessageEvent_View?requestMessage) ????????{ ????????????var?responseView?=?base.CreateResponseMessage<responsemessagetext>(); ????????????responseView.Content?=?"點擊帶有view的菜單欄"; ????????????return?responseView; ????????}</responsemessagetext>
3: Implementing the WeChat public account custom menu
Basically, there is a menu bar under every WeChat page. The one they have can be achieved through regular settings. Now ours is just a test account. We have been looking for the test account page for a long time and haven’t found it. Finally, it can be set in developer debugging after querying. Another way is to use the page provided by the SDK to achieve it.
3.1: Use developer debugging tools to implement custom menus
開發(fā)者調(diào)試工具網(wǎng)址:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E8%B0%83%E8%AF%95&form=%E4%BA%8B%E4%BB%B6%E6%B6%88%E6%81%AF
???? 我們發(fā)現(xiàn)這個還需要access_token來請求,但是我們從之前的開發(fā)中都沒有發(fā)現(xiàn)有這個,那么這個是什么呢,仔細的看官方的介紹吧;
獲取access_token,我們可以通過開發(fā)者調(diào)試工具,利用AppId和secret來獲取;
在第一幅圖中我們還需要body,調(diào)用接口的json數(shù)據(jù)包;可以參考微信開發(fā)文檔里面的進行設(shè)置。注意里面就會看到click和view這兩個事件類型。
{ ????????"button":?[ ????????????{ ????????????????"name":?"IT資訊",? ????????????????"sub_button":?[ ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"博客園",? ????????????????????????"url":?"http://m.cnblogs.com/",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"IT新聞",? ????????????????????????"url":?"http://news.cnblogs.com/m",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"click",? ????????????????????????"name":?"關(guān)于開發(fā)者",? ????????????????????????"key":?"http://m.cnblogs.com/?u=netxiaohui",? ????????????????????????"sub_button":?[?] ????????????????????} ????????????????] ????????????},? ????????????{ ????????????????"name":?"校園生活",? ????????????????"sub_button":?[ ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"搜索",? ????????????????????????"url":?"http://www.baidu.com/",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"視頻",? ????????????????????????"url":?"http://v.qq.com/",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"click",? ????????????????????????"name":?"關(guān)注我們",? ????????????????????????"key":?"V1001_GOOD",? ????????????????????????"sub_button":?[?] ????????????????????} ????????????????] ????????????},? ????????????{ ????????????????"name":?"學(xué)生",? ????????????????"sub_button":?[ ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"搜索",? ????????????????????????"url":?"http://www.soso.com/",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"view",? ????????????????????????"name":?"視頻",? ????????????????????????"url":?"http://v.qq.com/",? ????????????????????????"sub_button":?[?] ????????????????????},? ????????????????????{ ????????????????????????"type":?"click",? ????????????????????????"name":?"關(guān)注我們",? ????????????????????????"key":?"V1001_GOOD",? ????????????????????????"sub_button":?[?] ????????????????????} ????????????????] ????????????} ????????] ????}
??? 關(guān)于里面的事件類型,我們可以自己隨意的設(shè)置,都會響應(yīng)我們前面設(shè)置的菜單事件,我們可以進行一系列的邏輯代碼的處理。
3.2:SDK的自定義菜單
????? 通過下面的網(wǎng)址可以 進行設(shè)置,里面還是需要前面的兩個參數(shù)AppId和secret或者Token來設(shè)置微信的自定義菜單。
設(shè)置自定義菜單網(wǎng)址:http://sdk.weixin.senparc.com/Menu
四:最終的結(jié)果展示
??? 實現(xiàn)上面的代碼就可以實現(xiàn)相應(yīng)的功能。這個SDK簡單的使用我們現(xiàn)在已經(jīng)大體的會了,在之后的博文中會慢慢的解析這個SDK里面的一些東西,會從Request,Response等基礎(chǔ)開始。
The above is the detailed content of WeChat development implements responses to various messages. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

PHP is an open source scripting language that is widely used in web development and server-side programming, especially in WeChat development. Today, more and more companies and developers are starting to use PHP for WeChat development because it has become a truly easy-to-learn and easy-to-use development language. In WeChat development, message encryption and decryption are a very important issue because they involve data security. For messages without encryption and decryption methods, hackers can easily obtain the data, posing a threat to users.

In the development of WeChat public accounts, the voting function is often used. The voting function is a great way for users to quickly participate in interactions, and it is also an important tool for holding events and surveying opinions. This article will introduce you how to use PHP to implement WeChat voting function. Obtain the authorization of the WeChat official account. First, you need to obtain the authorization of the WeChat official account. On the WeChat public platform, you need to configure the API address of the WeChat public account, the official account, and the token corresponding to the public account. In the process of our development using PHP language, we need to use the PH officially provided by WeChat

With the popularity of WeChat, more and more companies are beginning to use it as a marketing tool. The WeChat group messaging function is one of the important means for enterprises to conduct WeChat marketing. However, if you only rely on manual sending, it is an extremely time-consuming and laborious task for marketers. Therefore, it is particularly important to develop a WeChat mass messaging tool. This article will introduce how to use PHP to develop WeChat mass messaging tools. 1. Preparation work To develop WeChat mass messaging tools, we need to master the following technical points: Basic knowledge of PHP WeChat public platform development Development tools: Sub

WeChat is currently one of the social platforms with the largest user base in the world. With the popularity of mobile Internet, more and more companies are beginning to realize the importance of WeChat marketing. When conducting WeChat marketing, customer service is a crucial part. In order to better manage the customer service chat window, we can use PHP language for WeChat development. 1. Introduction to PHP WeChat development PHP is an open source server-side scripting language that is widely used in the field of Web development. Combined with the development interface provided by WeChat public platform, we can use PHP language to conduct WeChat

In the development of WeChat public accounts, user tag management is a very important function, which allows developers to better understand and manage their users. This article will introduce how to use PHP to implement the WeChat user tag management function. 1. Obtain the openid of the WeChat user. Before using the WeChat user tag management function, we first need to obtain the user's openid. In the development of WeChat public accounts, it is a common practice to obtain openid through user authorization. After the user authorization is completed, we can obtain the user through the following code

As WeChat becomes an increasingly important communication tool in people's lives, its agile messaging function is quickly favored by a large number of enterprises and individuals. For enterprises, developing WeChat into a marketing platform has become a trend, and the importance of WeChat development has gradually become more prominent. Among them, the group sending function is even more widely used. So, as a PHP programmer, how to implement group message sending records? The following will give you a brief introduction. 1. Understand the development knowledge related to WeChat public accounts. Before understanding how to implement group message sending records, I

How to use PHP to develop WeChat public accounts WeChat public accounts have become an important channel for promotion and interaction for many companies, and PHP, as a commonly used Web language, can also be used to develop WeChat public accounts. This article will introduce the specific steps to use PHP to develop WeChat public accounts. Step 1: Obtain the developer account of the WeChat official account. Before starting the development of the WeChat official account, you need to apply for a developer account of the WeChat official account. For the specific registration process, please refer to the official website of WeChat public platform

With the development of the Internet and mobile smart devices, WeChat has become an indispensable part of the social and marketing fields. In this increasingly digital era, how to use PHP for WeChat development has become the focus of many developers. This article mainly introduces the relevant knowledge points on how to use PHP for WeChat development, as well as some of the tips and precautions. 1. Development environment preparation Before developing WeChat, you first need to prepare the corresponding development environment. Specifically, you need to install the PHP operating environment and the WeChat public platform
