-
Notifications
You must be signed in to change notification settings - Fork 107
Generate message helpers
lanrion edited this page Mar 28, 2014
·
4 revisions
当微信用户向公众账号发送信息时,服务端会根据信息的类型来回复,比如用户发送了 “首页”的关键字,那么微信会将此 文本消息 以XML的格式推送到我们的服务器处理:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[首页]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
我们服务端根据“首页”这个关键字,可能会有以下几种情况:
查询到需要返回的是一个 简单的文本信息,比如 “欢迎你。”,微信要求我们返回的XML格式为:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[欢迎你。]]></Content>
</xml>
我们需要使用的辅助方法为:
reply_text_message(from=nil, to=nil, content)
或者 reply_text_message(content)
例子:reply_text_message("欢迎你。")
查询到需要返回的是一个 3G首页的图文信息(news),微信要求我们返回的XML格式为:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml>
这时我们可以使用weixin_rails_middleware 提供的辅助方法:
generate_article(title, desc, pic_url, link_url)
reply_news_message(from=nil, to=nil, articles) # articles为 数组
生成文章列表,此例只有一个:
articles = [generate_article("title1", "description1","picurl","url")]
reply_news_message(articles)
如果服务需要返回音乐信息,微信需要我们返回的XML格式:
<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>
</xml>
可以使用到的辅助方法为:
generate_music(title, desc, music_url, hq_music_url)
reply_music_message(from=nil, to=nil, music) # from, to 为可选参数
举个例子:
music = generate_music("title", "desc", "music_url", "hq_music_url")
reply_music_message(music)
则会自动生成微信需要的XML格式。简单易用。