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:

ParameterDescription
signaturesignature for communication encryption
timestamptime stamp
noncea random number
echostra 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>
ParameterDescription
ToUserNameWeChat ID of your app
FromUserNamea unique ID for the sender
CreateTimecreate time of the message
MsgTypemessage type ("text" for text messages)
Contentmessage contents
MsgIda 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>
ParameterDescription
ToUserNameWeChat ID of your app
FromUserNamea unique ID for the sender
CreateTimecreate time of the message
MsgTypemessage type ("image" for image messages)
PicUrlURL for the image
MsgIda 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> 
ParameterDescription
ToUserNameWeChat ID of your app
FromUserNamea unique ID for the sender
CreateTimecreate time of the message
MsgTypemessage type ("location" for location messages)
Location_Xlatitude of the location
Location_Ylongitude of the location
Scalescale of the map
Labellocation description
MsgIda 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> 
ParameterDescription
ToUserNameWeChat ID of your app
FromUserNamea unique ID for the sender
CreateTimecreate time of the message
MsgTypemessage type ("link" for link messages)
Titletitle of the message
Descriptiondescription of the message
Urlurl which is sent to users
MsgIda 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>
ParameterDescription
ToUserNameWeChat ID of your app
FromUserNamea unique ID for the sender
CreateTimecreate time of the message
MsgTypemessage type ("event" for event messages)
Eventevent type, currently we have 3 types: subscribe, unsubscribe, CLICK(coming soon)
EventKeyfor 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>
ParameterDescription
ToUserNamea unique ID for the receiver, you can get it from the request
FromUserNameWeChat ID of your app
CreateTimecreate time of the message, the type is integer
MsgTypemessage type ("text" for text messages)
Contentreply message contents
FuncFlagadd 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>
ParameterDescription
ToUserNamea unique ID for the receiver, you can get it from the request
FromUserNameWeChat ID of your app
CreateTimecreate time of the message, the type is integer
MsgTypemessage type("music" for music messages)
MusicUrlURL for the music
HQMusicUrlURL for high quality, WeChat will access it when using WiFi
ThumbMediaIdOPTIONAL. You will get this ID after you upload the thumb (80*80) by using the API
FuncFlagadd 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> 
ParameterDescription
ToUserNamea unique ID for the receiver, you can get it from the request
FromUserNameWeChat ID of your app
CreateTimecreate time of the message, the type is integer
MsgTypemessage type ("news" for rich media messages)
ArticleCountquantity of rich media messages (no larger than 10)
Articlescontents of rich media messages. The first item will be displayed in large image by default.
Titletitle of the rich media message
Descriptiondescription of the rich media message
PicUrlURL 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)
Urlredirection 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  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值