微信公众号生成新浪短网址的实现(快速生成)


Posted in Javascript onAugust 18, 2019

有没有想过,向一个公众号发送长链接,然后公众号给你回复一个短网址?

其实很简单:

微信公众号生成新浪短网址的实现(快速生成)

<?php
define("TOKEN", "xiao");
//用于回复用户消息
function responseMsg(){
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
  if (!empty($postStr)){
    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $MsgT = $postObj->MsgType;
    $time = time();
    //如果用户发的text类型
    if($MsgT=="text"){
      $key = trim($postObj->Content);
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>"; 
      $msgType = "text";

      //生成短网址
      $dwzapi = "http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=".$key;
      $dwzpost = file_get_contents($dwzapi);
      $dwzjsondecode = json_decode($dwzpost,true);

      //发送
      $contentStr = $dwzjsondecode[0]['url_short'];
      

      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
      echo $resultStr;
      exit;

    }else{
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>"; 
      $msgType = "text";
    
      //发送
      $contentStr = "请发送链接";
      

      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
      echo $resultStr;
      exit;
    }

    //如果用户发的event(事件)类型
    if($MsgT=="event"){
      $Event = $postObj->Event;
      if ($Event==subscribe) {
        $contentStr = "欢迎关注";
      }else{
        $contentStr = "希望您下次关注,但您收不到此条消息了";
      }
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>"; 
      $Title = $postObj->Title;
      $Description = $postObj->Description;
      $Url = $postObj->Url;
      $msgType = 'text';
      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
      echo $resultStr;
      exit;
    }
  }else{
      echo "不对";
      exit;
  }
}

  $echoStr = $_GET["echostr"];
  //如果有$echoStr说明是对接
  if (!empty($echoStr)) {
    //对接规则
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
      echo $echoStr;
    }else{
      echo "";
      exit;
    }
  }else{
    responseMsg();
  }
?>

配置方法:

1、登录公众号
2、打开基本配置

微信公众号生成新浪短网址的实现(快速生成)

3、填写上面代码的url

微信公众号生成新浪短网址的实现(快速生成)

Token在代码里面自己设置,要对应的,EncodingAESKey随机生成。

4、然后启用这个配置,然后去公众号发送一个url看看!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery $(document).ready() 与window.onload的区别
Dec 28 Javascript
javascript中的继承实例代码
Apr 27 Javascript
什么是DOM(Document Object Model)文档对象模型
Mar 05 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
js自定义select下拉框美化特效
May 12 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
js初始化验证实例详解
Nov 26 Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 Javascript
vue router demo详解
Oct 13 Javascript
vue基础知识--axios合并请求和slot
Jun 04 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 #Javascript
详解ES6 Promise的生命周期和创建
Aug 18 #Javascript
vue-cli3配置与跨域处理方法
Aug 17 #Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
Aug 17 #Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 #Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 #Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 #Javascript
You might like
其他功能
2006/10/09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
Javascript学习指南
2014/12/01 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python之验证码生成(gvcode与captcha)
2019/01/02 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
大学生毕业自荐信
2013/10/10 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
先进工作者获奖感言
2014/02/08 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
国防教育标语
2014/10/08 职场文书
2015中学教学工作总结
2015/07/22 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript