WeChat Official Account Admin Platform Message API Guide
Keyword: WeChat Message API Text Image Location Link Event Music RichMedia
Author: PondBay Studio[WeChat Developer EXPERT]
Address: http://www.cnblogs.com/txw1958/p/WeChat-Message-API.html
Guide for Message API
Contents[hide] |
Introduction
The WeChat Official Account Admin Platform provides developers with a Message API to manage incoming messages and reply logic.
Apply for Message API
Click Apply and fill in a name, phone and email for a contact person, as well as a URL pointing to your server and a token. The token is used to generate a signature for communication between your app and WeChat.
URL Access
When the application is submitted, a GET request will be sent to the URL provided above with the 4 parameters below:
Parameter | Description |
---|---|
signature | signature for communication encryption |
timestamp | time stamp |
nonce | a random number |
echostr | a random string |
You should check whether the HTTP request is from WeChat by verifying the signature. If the signature is correct, you should return the echostr.
The signature will be generated in the following way using the token (that you provided), timestamp and nonce.
1. Sort the 3 values of token, timestamp and nonce alphabetically. 2. Combine the 3 parameters into one string, encrypt it using SHA-1. 3. Compare the SHA-1 digest string with the signature from the request. If they are the same, the access request is from WeChat.
Pushing Messages
When a WeChat user sends a message to an Official Account, WeChat Official Account Admin Platform will POST it to you via the URL you provided.
Text messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>
Parameter | Description |
---|---|
ToUserName | WeChat ID of your app |
FromUserName | a unique ID for the sender |
CreateTime | create time of the message |
MsgType | message type ("text" for text messages) |
Content | message contents |
MsgId | a unique ID for the message (64 bit integer) |
Image messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[image]]></MsgType> <PicUrl><![CDATA[this is a url]></PicUrl> <MsgId>1234567890123456</MsgId> </xml>
Parameter | Description |
---|---|
ToUserName | WeChat ID of your app |
FromUserName | a unique ID for the sender |
CreateTime | create time of the message |
MsgType | message type ("image" for image messages) |
PicUrl | URL for the image |
MsgId | a unique ID for the message (64 bit integer) |
Location data messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1351776360</CreateTime> <MsgType><![CDATA[location]]></MsgType> <Location_X>23.134521</Location_X> <Location_Y>113.358803</Location_Y> <Scale>20</Scale> <Label><![CDATA[location]]></Label> <MsgId>1234567890123456</MsgId> </xml>
Parameter | Description |
---|---|
ToUserName | WeChat ID of your app |
FromUserName | a unique ID for the sender |
CreateTime | create time of the message |
MsgType | message type ("location" for location messages) |
Location_X | latitude of the location |
Location_Y | longitude of the location |
Scale | scale of the map |
Label | location description |
MsgId | a unique ID for the message (64 bit integer) |
Link messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1357290913</CreateTime> <MsgType><![CDATA[link]]></MsgType> <Title><![CDATA[WeChat Official Account Platform portal]]></Title> <Description><![CDATA[The URL of the portal]]></Description> <Url><![CDATA[url]]></Url> <MsgId>1234567890123456</MsgId> </xml>
Parameter | Description |
---|---|
ToUserName | WeChat ID of your app |
FromUserName | a unique ID for the sender |
CreateTime | create time of the message |
MsgType | message type ("link" for link messages) |
Title | title of the message |
Description | description of the message |
Url | url which is sent to users |
MsgId | a unique ID for the message (64 bit integer) |
Event messages
<xml><ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[EVENT]]></Event> <EventKey><![CDATA[EVENTKEY]]></EventKey> </xml>
Parameter | Description |
---|---|
ToUserName | WeChat ID of your app |
FromUserName | a unique ID for the sender |
CreateTime | create time of the message |
MsgType | message type ("event" for event messages) |
Event | event type, currently we have 3 types: subscribe, unsubscribe, CLICK(coming soon) |
EventKey | for future usage |
Messages Replies
You can reply to incoming messages. Now the platform supports different kinds of messages, including text, image, voice, video and music. You can also do the operation 'add to my favorites'.
If you fail to perform your response within 5 seconds, we will close the connection.
The data structure for a reply message:
Text messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[content]]></Content> <FuncFlag>0</FuncFlag> </xml>
Parameter | Description |
---|---|
ToUserName | a unique ID for the receiver, you can get it from the request |
FromUserName | WeChat ID of your app |
CreateTime | create time of the message, the type is integer |
MsgType | message type ("text" for text messages) |
Content | reply message contents |
FuncFlag | add a star for the message if the bit (0x0001) is set |
Music message
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[TITLE]]></Title> <Description><![CDATA[DESCRIPTION]]></Description> <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl> <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId> </Music> <FuncFlag>0</FuncFlag> </xml>
Parameter | Description |
---|---|
ToUserName | a unique ID for the receiver, you can get it from the request |
FromUserName | WeChat ID of your app |
CreateTime | create time of the message, the type is integer |
MsgType | message type("music" for music messages) |
MusicUrl | URL for the music |
HQMusicUrl | URL for high quality, WeChat will access it when using WiFi |
ThumbMediaId | OPTIONAL. You will get this ID after you upload the thumb (80*80) by using the API |
FuncFlag | add a star for the message if the bit (0x0001) is set |
Rich media messages
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>2</ArticleCount> <Articles> <item> <Title><![CDATA[title1]]></Title> <Description><![CDATA[description1]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> <item> <Title><![CDATA[title]]></Title> <Description><![CDATA[description]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> </Articles> <FuncFlag>1</FuncFlag> </xml>
Parameter | Description |
---|---|
ToUserName | a unique ID for the receiver, you can get it from the request |
FromUserName | WeChat ID of your app |
CreateTime | create time of the message, the type is integer |
MsgType | message type ("news" for rich media messages) |
ArticleCount | quantity of rich media messages (no larger than 10) |
Articles | contents of rich media messages. The first item will be displayed in large image by default. |
Title | title of the rich media message |
Description | description of the rich media message |
PicUrl | URL of images in the rich media message. Domain name of this URL should be the same as the one of URL provided in basic info. Recommended image size: 640*320 (large image); 80*80 (small image) |
Url | redirection link of the rich media message |
Notes
1. One user's unique ID is different for different Official Accounts.
2. Recommend you use port 80 for your app server.
Sample code
PHP:Download
PondBay Studio is the Expert of WeChat Development, and has a lots of cases in China, Japan, Europe and US. The Founder has served the top companies such as China HuaWei and Israel Company. You can Contact US via email
本文来自博客园,作者:方倍工作室,转载请注明原文链接:https://www.cnblogs.com/txw1958/p/WeChat-Message-API.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· 25岁的心里话
· 因为Apifox不支持离线,我果断选择了Apipost!
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· Trae 开发工具与使用技巧
2012-09-03 C#中的线程(四)高级话题
2012-09-03 C#中的线程(三)多线程
2012-09-03 C#中的线程(二)线程同步
2012-09-03 C#中的线程(一)入门