php微信公眾號js-sdk開發(fā)應(yīng)用
測試js的接口功能,我用的是BAE服務(wù)器不是SAE服務(wù)器。SAE服務(wù)器不能寫入文件,測試會出問題。
什么叫js-sdk,我先演示js-sdk接口的具體作用。
我在微信隨便打開一片推送文章如下圖:
點開第一篇文章
上面就是我們的連接文章,如果我們把這篇文章發(fā)送給朋友,顯示效果如下圖:
分享到朋友圈我們再來看看效果:
為什么同樣是文章連接,在公眾號、發(fā)送給朋友、發(fā)送到朋友圈顯示的界面效果不一樣。公眾號的顯示效果是因為微信公眾帳號在推送的時候調(diào)用了微信的消息接口,而后兩者是因為頁面調(diào)用js-sdk相關(guān)的sdk接口。
發(fā)送給朋友調(diào)用了js接口的獲取“分享給朋友”按鈕點擊狀態(tài)及自定義分享內(nèi)容接口。
發(fā)送給朋友圈調(diào)用了js接口的獲取“分享到朋友圈”按鈕點擊狀態(tài)及自定義分享內(nèi)容接口。
下面我們來實現(xiàn)調(diào)用js-sdk接口的步驟:
第一步:微信公眾平臺進(jìn)入“公眾號設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”。
如下圖:
只有置于該域名下的頁面才能調(diào)用js接口。
第二步:http://demo.open.weixin.qq.com/jssdk/sample.zip連接這個地址下載 ,打開里面的php文件夾,你發(fā)現(xiàn)4個php文件
前面3 個php文件是配置文件,不要動它,sample.php是我們在微信中打開的連接頁面,在這個頁面中我們來編寫我們的頁面代碼。這個文件我用來測試,里面的代碼跟原版已經(jīng)不同。
<?php // echo "nihao"; require_once "jssdk.php"; $jssdk = new JSSDK("wxaf471be5d2bc9521", "93f5c3817074d43e7a7ab3f403cc72dd");//JSSDK中的參數(shù)是appid和appsecret。 $signPackage = $jssdk->GetSignPackage();//獲取配置參數(shù)。 ?>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> </head> <body> <div>我靠</div> <div>豬八戒</div> <button style="color: red" id="btn">你好</button> <button id="btn1">唐生</button> </body> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>//這個是js-sdk文件,一定要引入。 <script> var button = document.getElementsByTagName("button"); var btn = document.getElementById("btn"); var div = document.getElementsByTagName("div")[0]; var btn1 = document.getElementById("btn1"); //wx表示一個js-sdk構(gòu)建的一個對象。config()是它的一個方法,這個接口用來驗證配置。 wx.config({ debug: true,//true表示每調(diào)用一個接口信息都會在頁面alert一段字符串。方便測試過程中國是否能正確調(diào)用接口。 appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', //上面的4個參數(shù),如果你像深入了解其來源就去查看jssdk.php代碼。測試過程不需要對上面的代碼做任何操作。 jsApiList: [ // 所有要調(diào)用的 API 都要加到這個列表中 'onMenuShareAppMessage',//獲取“分享給朋友”按鈕點擊狀態(tài)及自定義分享內(nèi)容接口。 'chooseImage',//獲取手機(jī)相片接口 'openLocation'//獲取微信地圖接口 ] }); //所有的js調(diào)用接口都要放到下面的ready()中。 wx.ready(function () { // 在這里調(diào)用 API //獲取“分享給朋友”按鈕點擊狀態(tài),點擊后發(fā)送給朋友微信,微信上的推送顯示內(nèi)容就是下面的數(shù)據(jù) wx.onMenuShareAppMessage({ title: '大圣', // 分享標(biāo)題 desc: '我要堅持', // 分享描述 link: 'http://www.baidu.com', // 分享鏈接 imgUrl: 'http://discuz.comli.com/weixin/weather/icon/cartoon.jpg', // 分享圖標(biāo) type: 'link', // 分享類型,music、video或link,不填默認(rèn)為link dataUrl: '', // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空 success: function () { // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) alert("success"); }, cancel: function () { // 用戶取消分享后執(zhí)行的回調(diào)函數(shù) alert("error"); } }); //拍照或從手機(jī)相冊選擇。點擊頁面上的按鈕就可以調(diào)用手機(jī)里的相冊。 btn.onclick = function(){ wx.chooseImage({ count: 1, // 默認(rèn)9 sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有 sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機(jī),默認(rèn)二者都有 success: function (res) { var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標(biāo)簽的src屬性顯示圖片 } }) }; //微信內(nèi)置地圖接口。點擊該按鈕就可轉(zhuǎn)到顯示當(dāng)前位置的地圖頁面 btn1.onclick = function() { wx.openLocation({ latitude: 0, // 緯度,浮點數(shù),范圍為90 ~ -90 longitude: 0, // 經(jīng)度,浮點數(shù),范圍為180 ~ -180。 name: '', // 位置名 address: '', // 地址詳情說明 scale: 1, // 地圖縮放級別,整形值,范圍從1~28。默認(rèn)為最大 infoUrl: '' // 在查看位置界面底部顯示的超鏈接,可點擊跳轉(zhuǎn) }); } }); // wx.checkJsApi({ // jsApiList: ['onMenuShareAppMessage'], // 需要檢測的JS接口列表,所有JS接口列表見附錄2, // success: function(res) { // // 以鍵值對的形式返回,可用的api值true,不可用為false // // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} // alert("success"); // } // }); // btn.onclick = function() { // div.innerText = "齊天大圣"; // wx.onMenuShareAppMessage({ // title: '大圣', // 分享標(biāo)題 // desc: '我要堅持', // 分享描述 // link: 'http://www.baidu.com', // 分享鏈接 // imgUrl: 'http://discuz.comli.com/weixin/weather/icon/cartoon.jpg', // 分享圖標(biāo) // type: 'link', // 分享類型,music、video或link,不填默認(rèn)為link // dataUrl: '', // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空 // success: function () { // // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) // alert("success"); // }, // cancel: function () { // // 用戶取消分享后執(zhí)行的回調(diào)函數(shù) // alert("error"); // } // }); // } </script> </html>
測試js的接口功能,我用的是BAE服務(wù)器不是SAE服務(wù)器。SAE服務(wù)器不能寫入文件,測試會出問題。
更多功能及詳細(xì)信息,請大家訪問http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信js-sdk上傳與下載圖片接口用法示例
- 微信js-sdk地理位置接口用法示例
- 微信JS-SDK自定義分享功能實例詳解【分享給朋友/分享到朋友圈】
- 解析微信JS-SDK配置授權(quán),實現(xiàn)分享接口
- 微信JS-SDK選取手機(jī)照片上傳功能
- 微信js-sdk預(yù)覽圖片接口及從拍照或手機(jī)相冊中選圖接口用法示例
- PHP實現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法
- 微信 java 實現(xiàn)js-sdk 圖片上傳下載完整流程
- 微信js-sdk界面操作接口用法示例
- 最詳細(xì)的ASP.NET微信JS-SDK支付代碼
- 微信JS-SDK坐標(biāo)位置如何轉(zhuǎn)換為百度地圖坐標(biāo)
- 詳解基于Node.js的微信JS-SDK后端接口實現(xiàn)代碼
- 微信js-sdk分享功能接口常用邏輯封裝示例
- 微信JS-SDK分享功能的.Net實現(xiàn)代碼
- php版微信js-sdk支付接口類用法示例
- ASP.NET MVC 微信JS-SDK認(rèn)證
- 微信開發(fā) JS-SDK 6.0.2 經(jīng)常遇到問題總結(jié)
- 微信js-sdk+JAVA實現(xiàn)“分享到朋友圈”和“發(fā)送給朋友”功能詳解
相關(guān)文章
讓CodeIgniter的ellipsize()支持中文截斷的方法
CodeIgniter的Text Helper有一個ellipsize()方法,用來過濾HTML標(biāo)簽并且截斷文字十分好用。但是它對中文支持的特別不好,在中文中使用就有亂碼出現(xiàn)。這篇文章主要介紹了讓CodeIgniter的ellipsize()支持中文截斷的方法,需要的朋友可以參考下2014-06-06Laravel 框架基于自帶的用戶系統(tǒng)實現(xiàn)登錄注冊及錯誤處理功能分析
這篇文章主要介紹了Laravel 框架基于自帶的用戶系統(tǒng)實現(xiàn)登錄注冊及錯誤處理功能,結(jié)合實例形式分析了laravel框架自帶用戶系統(tǒng)的基本使用方法及操作注意事項,需要的朋友可以參考下2020-04-04php頁面跳轉(zhuǎn)session cookie丟失導(dǎo)致不能登錄等問題的解決方法
thinkphp開發(fā)的一個項目,登錄成功后又跳轉(zhuǎn)到登錄頁面,在提交信息后輸出session都是正常的,沒有問題,但是頁面跳轉(zhuǎn)后,session出現(xiàn)丟失現(xiàn)象,無法正常完成登陸,下面通過本文給大家解答下2016-12-12