有没有想过,向一个公众号发送长链接,然后公众号给你回复一个短网址?
其实很简单:
?phpdefine('TOKEN ',' Xiao ');//用于回复用户消息函数响应消息(){ $ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];if(!empty($ PostStr)){ $ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$ MSgt=$ PostObj-MSgtype;$ time=time();//如果用户发的文本类型if($ MSgt==' text '){ $ key=trim($ PostObj-Content);$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content/XML ';$ msgType=' text//生成短网址$ dwzapi='http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578url_long=' .$ key $ dwz post=file _ get _ contents($ dwzapi);$ dwzjsundecode=JSON _ decode($ dwz post,true);//发送$ ContentStr=$ dwzjsundecode[0][' URL _ short '];$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);echo $ resultStr退出;}else{ $textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content/XML ';$ msgType=' text//发送$contentStr='请发送链接;$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);echo $ resultStr退出;} //如果用户发的事件(事件)类型if($ MSgt==' Event '){ $ Event=$ PostObj-Event;if($ Event==subscribe){ $ content str='欢迎关注;}else{ $contentStr='希望您下次关注,但您收不到此条消息了;} $textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content/XML ';$ Title=$ PostObj-Title;$ Description=$ PostObj-Description;$ URl=$ PostObj-URl;$ msgType=' text $ resultStr=sprintf($ textTpl,$fromUsername,$toUsername,$time,$ msgType,$ content str);echo $ resultStr退出;} }else{ echo '不对;退出;} } $ echoStr=$ _ GET[' echoStr '];//如果有$echoStr说明是对接if(!空($echoStr)) { //对接规则$ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);sort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ echo $ echoStr;} else { echo退出;} } else { response msg();}?配置方法:
1、登录公众号2、打开基本配置
3、填写上面代码的全球资源定位器(统一资源定位符)
代币在代码里面自己设置,要对应的,编码密钥随机生成。
4、然后启用这个配置,然后去公众号发送一个全球资源定位器(统一资源定位符)看看!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。