天天看點

微信自定義分享到朋友圈标題,圖檔,連結

微信自定義朋友, 朋友圈分享

第一步: 驗證伺服器可用性

1: 進入 開發-基本配置-根據要求修改伺服器配置

微信自定義分享到朋友圈标題,圖檔,連結

2: 在上圖中編輯的伺服器url對應的本網站檔案中編寫驗證代碼, 用于驗證消息的确來自微信伺服器

$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 $_GET['echostr'];
        return true;
    }else{
        return false;
    }
           

3, 編輯儲存伺服器配置, 儲存前确認第二部的代碼已經上傳至網站并可通路, 當點選儲存的同時, 微信向第1步中編寫的url發送驗證, 驗證url有效性成功後即接入生效,成為開發者。

第二步: 擷取access_token

進入“公衆号設定”的“功能設定”裡填寫“ip白名單”, 設定白名單後才可以擷取access_token

使用get方式通路 連結 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=服務号的appid&secret=服務号的secret 擷取access_token

正确傳回示例:

{“access_token”:“ACCESS_TOKEN”,“expires_in”:7200}

access_token的有效期目前為2個小時,需定時重新整理,重複擷取将導緻上次擷取的access_token失效。

如果遇到問題請通路微信開發文檔連結

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 檢視錯誤碼對應具體的錯誤

**使用JSSDK **

1, 先登入微信公衆平台進入“公衆号設定”的“功能設定”裡填寫“JS接口安全域名”。

2, 在需要調用JS接口的頁面引入如下JS檔案,(支援https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js

3:在需要調用JS接口的頁面 通過config接口注入權限驗證配置

wx.config({
  debug: true, // 開啟調試模式,調用的所有api的傳回值會在用戶端alert出來,若要檢視傳入的參數,可以在pc端打開,參數資訊會通過log打出,僅在pc端時才會列印。
  appId: '', // 必填,公衆号的唯一辨別
  timestamp: , // 必填,生成簽名的時間戳
  nonceStr: '', // 必填,生成簽名的随機串
  signature: '',// 必填,簽名
  jsApiList: ['updateAppMessageShareData','updateTimelineShareData'] // 必填,需要使用的JS接口清單
});

//檢測接口是否可用, 調試時可使用此方法, 上線後可注釋
wx.checkJsApi({
  jsApiList: ['updateAppMessageShareData','updateTimelineShareData'], // 需要檢測的JS接口清單,所有JS接口清單見附錄2,
  success: function(res) {
    //alert(res);
    //alert('檢測成功');
  // 以鍵值對的形式傳回,可用的api值true,不可用為false
  // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  },
  error: function(res){
    //alert(res);
    //alert('檢測失敗');
  }
});
nonceStr說明:
生
成簽名時的随機字元串
signature說明:
(1)首先擷取jsapi_ticket,有效期7200秒,使用之前擷取的access_token GET方式擷取jsapi_ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=之前擷取的access_token&type=jsapi
(2), 獲得jsapi_ticket之後,就可以生成JS-SDK權限驗證的簽名了。
           
function string_rand()
 {
     $codeSet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     for ($i = 0; $i<16; $i++) {
         $codes[$i] = $codeSet[mt_rand(0, strlen($codeSet)-1)];
     }
     $nonceStr = implode($codes);
     return $nonceStr;
 }
 
$tmpArr = array(
 'noncestr' => '随機生成一個字元串',//生成示例見 function string_rand
 'timestamp' => '目前時間戳',//time()
 'jsapi_ticket' => '以上擷取的jsapi_ticket',
 'url' => '使用分享頁面的url',//動态擷取 $_SERVER['HTTP_REFERER'];
 );
 ksort($tmpArr, SORT_STRING);
 $string1 = http_build_query( $tmpArr );
 $string1 = urldecode( $string1 );
 $signature = sha1( $string1 );
//注意wx.config的時間戳需與生成簽名的時間戳一緻
           

4, 在需要調用JS接口的頁面編輯分享接口

//自定義“分享給朋友”及“分享到QQ”按鈕的分享内容(1.4.0)
  wx.ready(function () {   //需在使用者可能點選分享按鈕前就先調用
    wx.updateAppMessageShareData({ 
      title: '', // 分享标題
      desc: '', // 分享描述
      link: '', // 分享連結,該連結域名或路徑必須與目前頁面對應的公衆号JS安全域名一緻
      imgUrl: '', // 分享圖示
      success: function () {
        // 設定成功
      }
    })
  });

  //自定義“分享到朋友圈”及“分享到QQ空間”按鈕的分享内容(1.4.0)
  wx.ready(function () {      //需在使用者可能點選分享按鈕前就先調用
    wx.updateTimelineShareData({ 
      title: '', // 分享标題
      link: '', // 分享連結,該連結域名或路徑必須與目前頁面對應的公衆号JS安全域名一緻
      imgUrl: '', // 分享圖示
      success: function () {
        // 設定成功
      }
    })
  });