欢迎来到361模板(www.ke361.com),原创精品织梦模板提供商。QQ快速注册登录 网站托管 VIP 网站定制

361模板网

当前位置:361模板网 > 技术文档 > 程序代码 > 静态页面分享如何带缩略图、标题和描述
这篇文章主要为大家详细介绍了静态页面分享如何带缩略图、标题和描述,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

今天早上361模板给大家介绍了《实例分析微信分享网页链接缩略图不显示解决方法》。可能很多朋友看得不是很明白,因为没有代码,也不知道如何操作,下面361模板就详细给大家深入介绍一下静态页面分享如何带缩略图、标题和描述。

首先,我们需要在服务端引入jssdk.php文件

代码如下:

appId = $appId;    
    $this->appSecret = $appSecret;    
$this->url = $url;    
  }    
  public function getSignPackage() {    
    $jsapiTicket = $this->getJsApiTicket();    
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";    
   // $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";    
$url =$this->url;    
    $timestamp = time();    
    $nonceStr = $this->createNonceStr();    
    // 这里参数的顺序要按照 key 值 ASCII 码升序排序    
    $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
    //这里经常出问题,一般都是这里出现问题,要留意  
    $signature = sha1($string);    
    $signPackage = array(    
      "appId"     => $this->appId,    
      "nonceStr"  => $nonceStr,    
      "timestamp" => $timestamp,    
      "url"       => $url,    
      "signature" => $signature,    
      "rawString" => $string    
    );    
    return $signPackage;     
  }    
  private function createNonceStr($length = 16) {    
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";    
    $str = "";    
    for ($i = 0; $i < $length; $i++) {    
      $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);    
    }    
    return $str;    
  }     
  private function getJsApiTicket() {    
    // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例    
    $data = json_decode(file_get_contents("jsapi_ticket.json"));    
    if ($data->expire_time < time()) {    
      $accessToken = $this->getAccessToken();    
      // 如果是企业号用以下 URL 获取 ticket    
      // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";    
      $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";    
      $res = json_decode($this->httpGet($url));    
      $ticket = $res->ticket;    
      if ($ticket) {    
        $data->expire_time = time() + 7000;    
        $data->jsapi_ticket = $ticket;    
        $fp = fopen("jsapi_ticket.json", "w");    
        fwrite($fp, json_encode($data));    
        fclose($fp);    
      }    
    } else {    
      $ticket = $data->jsapi_ticket;    
    }    
    return $ticket;    
  }    
  private function getAccessToken() {    
    // access_token 应该全局存储与更新,以下代码以写入到文件中做示例    
    $data = json_decode(file_get_contents("access_token.json"));    
    if ($data->expire_time < time()) {    
      // 如果是企业号用以下URL获取access_token    
      // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";    
      $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";    
      $res = json_decode($this->httpGet($url));    
      $access_token = $res->access_token;    
      if ($access_token) {    
        $data->expire_time = time() + 7000;    
        $data->access_token = $access_token;    
        $fp = fopen("access_token.json", "w");    
        fwrite($fp, json_encode($data));    
        fclose($fp);    
      }    
    } else {    
      $access_token = $data->access_token;    
    }    
    return $access_token;    
  }     
  private function httpGet($url) {    
    $curl = curl_init();    
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);    
    curl_setopt($curl, CURLOPT_TIMEOUT, 500);    
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);    
    curl_setopt($curl, CURLOPT_URL, $url);    
    $res = curl_exec($curl);    
    curl_close($curl);    
    return $res;    
  }    
}     
$jssdk = new JSSDK("APPID", "APPSECRET",$url);//按照自己的公众号填写    
$signPackage = $jssdk->GetSignPackage();    
// var_dump($signPackage);  
$tmp=json_encode(array ('appId'=>$signPackage["appId"],'timestamp'=>$signPackage["timestamp"],
'nonceStr'=>$signPackage["nonceStr"],'signature'=>$signPackage["signature"],'url'=>$signPackage["url"]));    
$callback = $_GET['callback'];    
echo $callback.'('.$tmp.')';    
exit;    
?>

将上述文件,上传到空间后,做第二步。

第二步、静态页面js代码

<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>    
<script>    
url = location.href.split('#')[0];  
url = encodeURIComponent(url);    
  $.ajax({    
    type : "get",    
    url : "http://xxxxx.com/jssdk.php?url="+url,//替换网址,xxx根据自己jssdk文件位置修改    
    dataType : "jsonp",    
    jsonp: "callback",    
    jsonpCallback:"success_jsonpCallback",    
    success : function(data){    
        wx.config({   
        debug:false,   
appId: data.appId,    
timestamp: data.timestamp,    
nonceStr: data.nonceStr,    
signature: data.signature,    
jsApiList: [    
       "onMenuShareTimeline", //分享给好友    
       "onMenuShareAppMessage", //分享到朋友圈    
       "onMenuShareQQ",  //分享到QQ    
       "onMenuShareWeibo" //分享到微博    
]    
});    
},    
                error:function(data){    
                    alert("连接失败!");    
                }    
});    
  wx.ready(function (){    
  var shareData = {    
  title: '更换标题',    
  desc: '更换内容',//这里请特别注意是要去除html    
  link: '更换链接',    
  imgUrl: '更换图片'    
  };    
  wx.onMenuShareAppMessage(shareData);    
  wx.onMenuShareTimeline(shareData);    
  wx.onMenuShareQQ(shareData);    
  wx.onMenuShareWeibo(shareData);    
    });    
</script>

到这里通过以上2步就能实现静态页面分享带缩略图、标题和描述了。快去尝试看看吧。

上面2个文件懒人下载:

链接: https://pan.baidu.com/s/1zjp6gP2nTGk_lJSDf0z5CQ   提取码: kprm
以上就是静态页面分享如何带缩略图、标题和描述的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。

感谢打赏,我们会为大家提供更多优质资源!

热词标签: 静态页面 微信 分享带缩略图

上一篇实例分析微信分享网页链接缩略图不显示解决方法

下一篇CSS小课堂:css中px、em和rem的区别

取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by361模板网,分享从这里开始,精彩与您同在