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


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退出each循环的写法
Feb 26 Javascript
JavaScript实现简单图片翻转的方法
Apr 17 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
javascript中数组和字符串的方法对比
Jul 20 Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
微信小程序实现页面跳转传值的方法
Oct 12 Javascript
Vue实现搜索结果高亮显示关键字
May 28 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 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
php MySQL与分页效率
2008/06/04 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
Python random模块用法解析及简单示例
2017/12/18 Python
python读取和保存视频文件
2018/04/16 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
pandas数据处理进阶详解
2019/10/11 Python
Pycharm小白级简单使用教程
2020/01/08 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
运动会邀请函范文
2014/02/06 职场文书
《泉水》教学反思
2014/04/11 职场文书
文明倡议书范文
2014/04/15 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
Python道路车道线检测的实现
2021/06/27 Python