微信分享鏈接時(shí),怎樣才能帶上縮略圖和簡(jiǎn)介?

我不喜歡回形針。

以前我僅僅把網(wǎng)頁(yè)開(kāi)始的地方放一個(gè)不可見(jiàn)的圖片,后來(lái)發(fā)現(xiàn)沒(méi)有效果。

現(xiàn)在我們開(kāi)始:

原料:GetwxLink

微信公眾號(hào):




步驟一:綁定域名

先登錄微信公眾平臺(tái)進(jìn)入“公眾號(hào)設(shè)置”的“功能設(shè)置”里填寫(xiě)“JS接口安全域名”。

步驟二:引入JS文件

r url=location.href;

? ? $.ajax({

? ? ? ? type : "get",

? ? ? ? url : "http://這里改為你自己的網(wǎng)址.com/jssdk.php?url="+url,

? ? ? ? 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',

? ? ? ? ? ? ? ? ? ? 'onMenuShareWeibo',

? ? ? ? ? ? ? ? ? ? 'onMenuShareQZone'

? ? ? ? ? ? ? ? ]

? ? ? ? ? ? });

? ? ? ? },

? ? ? ? error:function(data){

? ? ? ? ? ? alert("連接失敗!");

? ? ? ? }

? ? });

? ? wx.ready(function () {

? ? ? ? var shareData = {

? ? ? ? ? ? title: '這是是分享標(biāo)題',

? ? ? ? ? ? desc: '這是是摘要',

? ? ? ? ? ? link: url,

? ? ? ? ? ? imgUrl: '這里改為你網(wǎng)站域名下的小圖標(biāo)文件的地址'

? ? ? ? };

? ? ? ? wx.onMenuShareAppMessage(shareData);//分享給好友

? ? ? ? wx.onMenuShareTimeline(shareData);//分享到朋友圈

? ? ? ? wx.onMenuShareQQ(shareData);//分享給手機(jī)QQ

? ? ? ? wx.onMenuShareWeibo(shareData);//分享騰訊微博

? ? ? ? wx.onMenuShareQZone(shareData);//分享到QQ空間

? ? });

? ? wx.error(function (res) {

? ? ? ? //alert(res.errMsg);//錯(cuò)誤提示

? ? });

url : "http://這里改為你自己的網(wǎng)址.com/jssdk.php?url="+url,

這個(gè)網(wǎng)站不必須是目前的網(wǎng)址,如果你有多個(gè)網(wǎng)站,可以引用同一個(gè)jssdk.php文件。

PHP? 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();

? ? ? ? // 這里參數(shù)的順序要按照 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 應(yīng)該全局存儲(chǔ)與更新,以下代碼以寫(xiě)入到文件中做示例

? ? ? ? $data = json_decode(file_get_contents("jsapi_ticket.json"));

? ? ? ? if ($data->expire_time < time()) {

? ? ? ? ? ? $accessToken = $this->getAccessToken();

? ? ? ? ? ? // 如果是企業(yè)號(hào)用以下 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 應(yīng)該全局存儲(chǔ)與更新,以下代碼以寫(xiě)入到文件中做示例

? ? ? ? $data = json_decode(file_get_contents("access_token.json"));

? ? ? ? if ($data->expire_time < time()) {

? ? ? ? ? ? // 如果是企業(yè)號(hào)用以下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("wx********************a", "*************************",$url);

$signPackage = $jssdk->GetSignPackage();

$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;

?>

只要改一下這一行為你自己的:

$jssdk = new JSSDK("wx********************", "*************************",$url);

只要改一下這一行為你自己的:

$jssdk?=?new?JSSDK("wx********************",?"*************************",$url);

最后,別忘了存放這個(gè)PHP的文件夾權(quán)限為可寫(xiě)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容