亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
# 一、註冊微信公眾號" ># 一、註冊微信公眾號
# 二、開通權限
# 三、當介面權限開通之後,我們需要為公眾號碼設定一個JS介面安全域名
## 四、當安全網(wǎng)域填寫成功之後,需要設定一個IP白名單
# 五、以上功能需要在公眾號裡面配置的步驟就全部完成了,以下開始將介面放入特定專案中
首頁 微信小程式 微信開發(fā) H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

May 07, 2020 pm 02:52 PM
h5

最近在工作中遇到了一個功能,需要將我們手機端的H5頁面自訂分享到微信朋友、朋友圈、QQ和QQ空間。

下面是我自己百度,然後自己親身測試得到的一個方法;下面分享給大家,互相學習。

實現(xiàn)原理:H5的自訂分享需要用到微信公眾平臺的分享接口,也就是微信網(wǎng)頁開發(fā)中的JSSDK,【具體的說明文檔:https://developers.weixin. qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html】使用微信的SDK中的分享接口,如下圖所示:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

注意:下面的自訂分享功能,只能是在微信的內(nèi)建瀏覽器裡面進行分享操作;在其他瀏覽器中是不可以的。

# 一、註冊微信公眾號

#首先我們需要開通一個微信公眾號,公眾號類型必須是訂閱號,個人號是沒有分享介面的功能。

# 二、開通權限

當我們公眾號註冊完成之後,我們需登入微信公眾平臺,去開發(fā)-》介面權限,去開通分享介面的權限【開通權限需認證企業(yè)且繳費認證】,下圖是已經(jīng)認證過的情況:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

# 三、當介面權限開通之後,我們需要為公眾號碼設定一個JS介面安全域名

登入微信公眾平臺,進入設定-》公眾號設定-》功能設置,填寫有效的JS介面安全網(wǎng)域【你的專案存取網(wǎng)域】,如下圖所示:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

## 四、當安全網(wǎng)域填寫成功之後,需要設定一個IP白名單

在點擊開發(fā)-》基本設定-》IP白名單,去填寫一個伺服器IP【你專案所在伺服器的IP位址】,具體原因下面會說到,如下圖所示:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

# 五、以上功能需要在公眾號裡面配置的步驟就全部完成了,以下開始將介面放入特定專案中

##(1)引入JS文件

在需要呼叫JS介面的頁面引入如下JS文件, (支援https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js

如需進一步提升服務穩(wěn)定性,當上述資源無法存取時,可改訪問:http://res2.wx.qq.com/open/js/jweixin-1.4.0.js (支援https)

##(2)透過config介面注入權限驗證配置

所有需要使用JS-SDK的頁面必須先註入組態(tài)訊息,否則將無法呼叫

wx.config({
  debug: true, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過log打出,僅在pc端時才會打印。
  appId: '', // 必填,公眾號的唯一標識
  timestamp: , // 必填,生成簽名的時間戳
  nonceStr: '', // 必填,生成簽名的隨機串
  signature: '',// 必填,簽名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

上面權限驗證的參數(shù)中,

##1. "appId",是公眾號的唯一標識,可在微信公眾平臺獲得

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

#2.“timestamp”,時間戳

3.“nonceStr ”,隨機字串,【長度不要超過32位元】

##4.”signature“,簽名(需要拼接參數(shù),然後加密得到)

5.jsApiList是JS介面列表,如下圖:【連結:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62】

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

(3)產(chǎn)生簽名“signature”【比較複雜的一個地方】

#a.產(chǎn)生簽名,需要我們用到幾個參數(shù),然後將參數(shù)拼接成字串,然後用sha1()方式進行加密。

參數(shù)有:noncestr:隨機字串【這個需要和權限驗證中的隨機字串一致】

jsapi_ticket:jsapi_ticket是公眾號用於呼叫微信JS介面的臨時票據(jù),正常情況下,jsapi_ticket的有效期限為7200秒,透過access_token來取得。

timestamp:時間戳記【這個時間戳記同樣需要和權限驗證中的時間戳一致,單位是秒】

url:目前網(wǎng)頁的URL,不包含#及其後面部

#然後將所有參數(shù)拼接成一個字串,例如:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value

然后對上面的字符串進行加密【sha1()函數(shù)進行加密】,得到signature。

b.現(xiàn)在來說說怎樣獲得調(diào)用微信調(diào)用JS接口的臨時票據(jù)jsapi_ticke

因為jsapi_ticket的有效期為7200秒,并且需要通過access_token來獲取到,所以我們先獲取access_token;access_token公眾號的一天獲取次數(shù)有限,2000次,且有效時間為7200秒,所以我們可以考慮每次獲取到的access_token放入緩存或者讓數(shù)據(jù)表中,在有效期內(nèi)反復調(diào)用【我是存儲到數(shù)據(jù)表中的】。

下面是我自己寫的一個簡單類和數(shù)據(jù)表結構

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

class Wxapi{
    protected $appid;
    protected $appsecret;
 
    /**
     * 構造函數(shù)
     * 2019-12-10
     */
    public function __construct($appid,$appsecret){
        $this->appid=$appid;
        $this->appsecret=$appsecret;
        $this->sessionKey_url="https://api.weixin.qq.com/sns/jscode2session";
        $this->accessToken_url="https://api.weixin.qq.com/cgi-bin/token";
        $this->jsapi_ticket_url="https://api.weixin.qq.com/cgi-bin/ticket/getticket";
        $this->qrcodeUrl="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode";
    }
 
    /**
     * 獲取access_token
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getToken($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where('appid',$appid)->where('appsecret',$appsecret)->first();
        $now_time = time();//當前時間戳
        if(empty($accountInfo)){
            return false;
        }
        if($now_time-$accountInfo->access_token_time<7000){
            $token = $accountInfo->access_token;
            return $token;
        }else{
            $get_token_url = $this->accessToken_url."?grant_type=client_credential&appid=".$appid.&#39;&secret=&#39;.$appsecret;
            $getToken_json = curl_get($get_token_url);
            $getToken_arr = json_decode($getToken_json[&#39;output&#39;],true);
            $token = $getToken_arr[&#39;access_token&#39;];
            $arr = [
                &#39;access_token_time&#39;=>time(),
                &#39;access_token&#39;=>$token,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $token;
            }else{
                return false;
            }
        }
    }
 
    /**
     * 獲取jssdk-ticket
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getJssdkTicket($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->first();
        if(empty($accountInfo)){
            return false;
        }
        $now_time = time();//當前時間戳
        if($now_time-$accountInfo->jsapi_ticket_time<7000){
            $jsapi_ticket = $accountInfo->jsapi_ticket;
            return $jsapi_ticket;
        }else{
            $access_token=$this->getToken($appid,$appsecret,$tableName);
            if(!$access_token){
                return false;
            }
            $get_jsapi_ticket_url = $this->jsapi_ticket_url."?access_token=".$access_token."&type=jsapi";
            $getJssdkTicket_json = curl_get($get_jsapi_ticket_url);
            $getJssdkTicket_arr = json_decode($getJssdkTicket_json[&#39;output&#39;],true);
            $jsapi_ticket = $getJssdkTicket_arr[&#39;ticket&#39;];
            $arr = [
                &#39;jsapi_ticket_time&#39;=>time(),
                &#39;jsapi_ticket&#39;=>$jsapi_ticket,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $jsapi_ticket;
            }else{
                return false;
            }
        }
    }
}

這邊我們的操作是,我們后端獲取jsapi_ticket返回給前端,然后前端進行權限驗證。

為了方便調(diào)試,我們可以在微信開發(fā)者工具中進行調(diào)試。下載鏈接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

當頁面去調(diào)用微信的JSSDK接口時,成功可以看到對應的微信返回數(shù)據(jù)。

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

如果出現(xiàn)錯誤,請根據(jù)開發(fā)文檔進行修改:

11H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

然后在手機上進行分享,測試是否成功;下面是我成功的操作。

朋友圈分享:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

微信群組分享:

H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

QQ分享:

1H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間

以上是H5頁面自訂標題、連結、描述、圖片分享到微信朋友、朋友圈、QQ和QQ空間的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
h5是指什麼 h5是指什麼 Aug 02, 2023 pm 01:52 PM

H5是指HTML5,是HTML的最新版本,H5是一個功能強大的標記語言,為開發(fā)者提供了更多的選擇和創(chuàng)造空間,它的出現(xiàn)推動了Web技術的發(fā)展,使得網(wǎng)頁的交互和效果更加出色,隨著H5技術的逐漸成熟和普及,相信它將在互聯(lián)網(wǎng)的世界中發(fā)揮越來越重要的作用。

如何區(qū)分H5,WEB前端,大前端,WEB全端? 如何區(qū)分H5,WEB前端,大前端,WEB全端? Aug 03, 2022 pm 04:00 PM

本文帶你快速區(qū)分H5、WEB前端、大前端、WEB全棧,希望對需要的朋友有幫助!

H5指的是什麼?探索上下文 H5指的是什麼?探索上下文 Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:網(wǎng)絡標準和技術的發(fā)展 H5:網(wǎng)絡標準和技術的發(fā)展 Apr 15, 2025 am 12:12 AM

Web標準和技術從HTML4、CSS2和簡單的JavaScript演變至今,經(jīng)歷了顯著的發(fā)展。1)HTML5引入了Canvas、WebStorage等API,增強了Web應用的復雜性和互動性。2)CSS3增加了動畫和過渡功能,使頁面效果更加豐富。3)JavaScript通過Node.js和ES6的現(xiàn)代化語法,如箭頭函數(shù)和類,提升了開發(fā)效率和代碼可讀性,這些變化推動了Web應用的性能優(yōu)化和最佳實踐的發(fā)展。

h5怎麼實現(xiàn)web端向上滑動載入下一頁 h5怎麼實現(xiàn)web端向上滑動載入下一頁 Mar 11, 2024 am 10:26 AM

實現(xiàn)步驟:1、監(jiān)聽頁面的滾動事件;2、判斷捲動至頁面底部;3、載入下一頁資料;4、更新頁面捲動位置即可。

H5代碼:可訪問性和語義HTML H5代碼:可訪問性和語義HTML Apr 09, 2025 am 12:05 AM

H5通過語義化元素和ARIA屬性提升網(wǎng)頁的可訪問性和SEO效果。 1.使用、、等元素組織內(nèi)容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網(wǎng)頁。

H5:如何增強網(wǎng)絡上的用戶體驗 H5:如何增強網(wǎng)絡上的用戶體驗 Apr 19, 2025 am 12:08 AM

H5通過多媒體支持、離線存儲和性能優(yōu)化提升網(wǎng)頁用戶體驗。 1)多媒體支持:H5的和元素簡化開發(fā),提升用戶體驗。 2)離線存儲:WebStorage和IndexedDB允許離線使用,提升體驗。 3)性能優(yōu)化:WebWorkers和元素優(yōu)化性能,減少帶寬消耗。

h5如何使用position h5如何使用position Dec 26, 2023 pm 01:39 PM

在H5中使用position屬性可以透過CSS控制元素的定位方式:1、相對定位relative,語法為「style="position: relative;」;2、絕對定位absolute,語法為「style="position: absolute; 」;3、固定定位fixed,語法為「style="position: fixed;」等等。

See all articles