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


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 相关文章推荐
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 Javascript
仿百度的关键词匹配搜索示例
Sep 25 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
javascript制作2048游戏
Mar 30 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 Javascript
JavaScript仿商城实现图片广告轮播实例代码
Feb 06 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
vue axios同步请求解决方案
Sep 29 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
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
JS实现页面打印功能
2017/03/16 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
numpy数组拼接简单示例
2017/12/15 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
python实现猜数游戏
2020/03/27 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
介绍一下Java中的Class类
2015/04/10 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android