asp微信公众号自动回复开发案列之新闻查询机器人
2016-04-09 20:37
471 查看
<% '********************************************** 'ASP文件需要以UTF-8的格式保存,否则乱码. '********************************************** '容错处理 On Error Resume Next '快速个性化设置 title="某某微信号:新闻查询机器人" '查询标题 tiaoshu="20" '显示条数建议20 '查询说明:输入后台设置的条件查询+后台设置的说明 fawoo="查询帮助:"&vbcrlf fawoo=fawoo&"发: @关键词 查看 [指定关键词的新闻] "&vbcrlf fawoo=fawoo&"例: @足球 查看 [足球 新闻] "&vbcrlf '获得echostrs用于接口绑定 echostrs = request("echostr") if len(echostrs)>0 then response.write echostrs response.end() end if '得到服务器时间 times=FormatDateTime(Now(),0) '服务器时间 set xml_dom = Server.CreateObject("MSXML2.DOMDocument") '此处根据您的实际版本 xml_dom.load request FromUserName=xml_dom.getelementsbytagname("FromUserName").item(0).text '获得发送者微信唯一识别号 ToUserName=xml_dom.getelementsbytagname("ToUserName").item(0).text '获得接收者微信唯一识别号 msgtype=xml_dom.getelementsbytagname("MsgType").item(0).text '获得微信的信息类型 msgtype=LCase(msgtype) '转小写,防止大写小写不匹配 '如果不是MSXML那就接受POST,用于其他第三方接口POST给我们的数据 if msgtype="" then msgtype="text" FromUserName=request("FromUserName") ToUserName=request("ToUserName") end if Select Case msgtype Case "text" ' msgtext=xml_dom.getelementsbytagname("Content").item(0).text '获得微信的信息内容 msgidid=xml_dom.getelementsbytagname("MsgId").item(0).text '获得微信的信息单条微信唯一ID if msgtext="" then msgidid="" msgtext=request("Content") end if msgtext=replace(msgtext,"@","") tite="["&msgtext&"]最新新闻" urls="http://news.baidu.com/ns?word="&msgtext&"&ie=gb2312&cl=2&rn="&tiaoshu&"&ct=0&tn=newsrss&class=0" Content=tite&""&vbcrlf&getnews(urls,tousername,tite) Content=Content&vbcrlf&"检索结果来源:news.baidu.com" Case "voice" Content="你的声音很甜美,只是客服美眉暂时无法识别你的【语音】信息!"&vbcrlf&fawoo '获得语音回复 Case "image" Content="这是传说中的艳照吧,客服美眉我可是女的,不感兴趣哦!"&vbcrlf&fawoo '获得图片回复 Case "event" strEventType=xml_dom.getelementsbytagname("Event").item(0).text '微信事件 strEventType=LCase(strEventType) '转小写,防止大写小写不匹配 if strEventType="subscribe" then '关注微信 Content="非常感谢你【关注】"&title&"微信自动回复查询机器人!"&vbcrlf&fawoo ElseIf strEventType="unsubscribe" Then '取消关注 Content="呜呜呜,干嘛取消【关注】我们!难道我不漂亮么?"&vbcrlf&fawoo ElseIf strEventType="click" Then '鼠标点击 Eventvalue=xml_dom.getelementsbytagname("EventKey").item(0).text '微信事件 Content="鼠标点击事件【“"&Eventvalue&"”】?"&vbcrlf&fawoo end if Case "video" Content="莫非这就是传说中的A片?姐姐我没空看哦!有话直说吧! "&vbcrlf&fawoo '获得视频回复 Case "music" Content="哇,很好听的音乐!不过姐很忙没空听,有话直说吧!"&vbcrlf&fawoo '获得音乐回复 Case "news" Content="两个凡是:凡是网址都是病毒,凡是新闻我都不会去关注!"&vbcrlf&fawoo '获得新闻回复 Case "link" Content="两个凡是:凡是网址都是病毒,凡是网址我都不会去打开!"&vbcrlf&fawoo '获得链接回复 Case "location" Content="哎呀喂,别告诉我你的位置哇!我又不会来敲门!"&vbcrlf&fawoo '获得定位回复 Case Else Content="客服美眉暂时无法识别你的【"&msgtype&"】信息!"&vbcrlf&fawoo '获得其他格式信息回复 End Select if len(Content)>1 then response.write text(fromusername,tousername,Content) else response.write text(fromusername,tousername,fawoo) end if set xml_dom=Nothing '远程得到百度新闻内容 function getnews(urls,tousername,texts) Set xml = Server.CreateObject("Microsoft.XMLHTTP") xml.Open "GET", urls, False xml.Send Set xmlDom = server.createObject("microsoft.xmldom") xmlDom.async=False xmlDom.ValidateOnParse=false xmlDom.load(xml.responseXML) if xmlDom.ReadyState>2 Then set oItem=xmlDom.getElementsByTagName("item") maxlen=oItem.length-1 if maxlen>tiaoshu then maxlen=tiaoshu else maxlen=maxlen end if for i=0 to maxlen word=oItem(i).childNodes(0).text news=oItem(i).childNodes.item(0).text Link=oItem(i).childNodes.item(1).text Naws=oItem(i).childNodes.item(3).text newstext=newstext&vbcrlf&"【新闻"&i+1&"】"&vbcrlf newstext=newstext&"<a href="""&link&""">"&news&"</a>"&vbcrlf 'link newstext=newstext&"【时间:】"&vbcrlf 'strNow = Year(Naws)&"-"&Month(Naws)&"-"&Day(Naws) 'strNow = strNow&" "&Hour(Naws)&":"&Minute(Naws)&":"&Second(Naws) newstext=newstext&"["&Naws&"]"&vbcrlf next end if getnews=newstext end function '文本回复模版 function text(fromusername,tousername,returnstr) text="<xml>" &_ "<ToUserName><![CDATA["&fromusername&"]]></ToUserName>" &_ "<FromUserName><![CDATA["&tousername&"]]></FromUserName>" &_ "<CreateTime>"&now&"</CreateTime>" &_ "<MsgType><![CDATA[text]]></MsgType>" &_ "<Content><![CDATA[" & returnstr & "]]></Content>" &_ "<FuncFlag>0<FuncFlag>" &_ "</xml>" end function '使用说明: ' '这是asp微信公众号自动回复开发案列之新闻查询机器人 '可以对任意输入都提示内容及发送使用说明 '比如发送图片,语音,定位信息,文字信息等都会回复信息。 '是各网页爱好者初学微信公众号接口开发的最佳案列 '是微信公众号最实用的一个组件。 ' '主功能:发送@关键词查询对应关键词的新闻 '比如输入:@足球 就会检索百度的海量新闻数据。 ' ' '第一步: ' '接口文件名可以任意修改(默认是weixinnews.asp) '代码上传到asp空间(需xmlhttp支持),得到的新的接口地址就是: 'http://你的域名/目录地址/新文件名.asp ' ' '第二步:配置微信后台 ' '微信公众号平台-->开发者中心-->服务器配置(注意要启用他) 'URL(服务器地址): http://你的域名/目录地址/新文件名.asp (换为你的接口地址) 'Token(令牌): 随意填写 'EncodingAESKey(消息加解密密钥) :随机 '消息加解密方式:明文模式 ' '第三步:你就可以查询测试了 %>'使用说明:
'
'这是asp微信公众号自动回复开发案列之新闻查询机器人
'可以对任意输入都提示内容及发送使用说明
'比如发送图片,语音,定位信息,文字信息等都会回复信息。
'是各网页爱好者初学微信公众号接口开发的最佳案列
'是微信公众号最实用的一个组件。
'
'主功能:发送@关键词查询对应关键词的新闻
'比如输入:@足球 就会检索百度的海量新闻数据。
'
'
'第一步:
'
'接口文件名可以任意修改(默认是weixinnews.asp)
'代码上传到asp空间(需xmlhttp支持),得到的新的接口地址就是:
'http://你的域名/目录地址/新文件名.asp
'
'
'第二步:配置微信后台
'
'微信公众号平台-->开发者中心-->服务器配置(注意要启用他)
'URL(服务器地址): http://你的域名/目录地址/新文件名.asp (换为你的接口地址)
'Token(令牌): 随意填写
'EncodingAESKey(消息加解密密钥) :随机
'消息加解密方式:明文模式
'
'第三步:你就可以查询测试了
相关文章推荐
- IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
- Asp.net WebApi版本控制
- Asp.net WebApi版本控制
- 8种提升ASP.NET Web API性能的方法
- Asp.net WebAPi Restful 的实现和跨域
- Asp.net WebAPi Restful 的实现和跨域
- 记一次ASP.NET MVC性能优化(实际项目中)
- ASP.NET之通过JS向服务端(后台)发出请求(__doPostBack is undefined)
- asp.net 预编译和动态编译
- ASP.NET MVC5 高级编程 第3章 视图
- ASP.NET MVC5 高级编程 第2章 控制器
- ASP.Net MVC开发基础学习笔记(2):HtmlHelper与扩展方法
- Asp.net MVC中关于@Html标签的使用
- asp.net中信息存储---session、cache、viewstate等的区别
- ASP.NET页面跳转的三种方法比较
- asp.net获取客户端浏览器及主机信息
- asp.net 柱形图
- asp.net 生成图形验证码(字母和数字混合)
- asp.net 网页抓取内容
- ASP.NET上传下载