登錄你的微信平台,點擊「公眾號設置」。
2
點擊「功能設置」,然後點擊「設置」。
3
設置JS介面安全域名。這里填寫的是一級域名,不帶www和http。最多可以設置三個域名。設置完後點擊確定。(多說一句,相比以前的分享沒有任何域名限制,這里設置安全域名,目的是為了當發現此公眾平台發現誘導分享行為時,可以根據此域名追溯到所有分享出去的鏈接,以及通過這些鏈接增加的粉絲。這樣,微信就可以牢牢控制了你的微信平台,一旦發現違規,讓分享鏈接失效,刪除掉誘導行為增加的粉絲,是瞬間就可以完成的。因此,微信平台的開發者,一定要合理來使用分享功能,不要因小失大。等到你的微信平台被封,估計哭都來不及)
4
在開發者中心中獲取你的AppID和AppSecret,接下來在獲取令牌時,需要這兩個信息。
5
獲取令牌。在伺服器端完成,代碼如下:
function wx_get_token() {
$token = S('access_token');
if (!$token) {
$res = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' .'你的AppID'.'&secret=' .'你的AppSecret');
$res = json_decode($res, true);
$token = $res['access_token'];
// 注意:這里需要將獲取到的token緩存起來(或寫到資料庫中)
// 不能頻繁的訪問https://api.weixin.qq.com/cgi-bin/token,每日有次數限制
// 通過此介面返回的token的有效期目前為2小時。令牌失效後,JS-SDK也就不能用了。
// 因此,這里將token值緩存1小時,比2小時小。緩存失效後,再從介面獲取新的token,這樣
// 就可以避免token失效。
// S()是ThinkPhp的緩存函數,如果使用的是不ThinkPhp框架,可以使用你的緩存函數,或使用資料庫來保存。
S('access_token', $token, 3600);
}
return $token;
}
注意:返回的access_token長度至少要留夠512位元組。介面返回值:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
{"access_token":"vdlThyTfyB0N5eMoi3n_aMFMKPuwkE0MgyGf_0h0fpzL8p_-0kVHY33BykRC0YXZZZ-WdxEic4","expires_in":7200}
6
獲取jsapi的ticket。jsapi_ticket是公眾號用於調用微信JS介面的臨時票據。正常情況下,jsapi_ticket的有效期為7200秒,通過access_token來獲取。
function wx_get_jsapi_ticket(){
$ticket = "";
do{
$ticket = S('wx_ticket');
if (!empty($ticket)) {
break;
}
$token = S('access_token');
if (empty($token)){
wx_get_token();
}
$token = S('access_token');
if (empty($token)) {
logErr("get access token error.");
break;
}
$url2 = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi",
$token);
$res = file_get_contents($url2);
$res = json_decode($res, true);
$ticket = $res['ticket'];
// 注意:這里需要將獲取到的ticket緩存起來(或寫到資料庫中)
// ticket和token一樣,不能頻繁的訪問介面來獲取,在每次獲取後,我們把它保存起來。
S('wx_ticket', $ticket, 3600);
}while(0);
return $ticket;
}
介面返回值:
{"errcode":0,"errmsg":"ok","ticket":"-I98-_YWtOQg","expires_in":7200}
7
簽名,將jsapi_ticket、noncestr、timestamp、分享的url按字母順序連接起來,進行sha1簽名。
noncestr是你設置的任意字元串。
timestamp為時間戳。
$timestamp = time();
$wxnonceStr = "任意字元串";
$wxticket = wx_get_jsapi_ticket();
$wxOri = sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s",
$wxticket, $wxnonceStr, $timestamp,
'要分享的url(從http開始,如果有參數,包含參數)'
);
$wxSha1 = sha1($wxOri);
END
步驟2 添加JS代碼
生成簽名後,就可以使用js代碼了。在你的html中,進行如下設置即可。
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
// 微信配置
wx.config({
debug: false,
appId: "你的AppID",
timestamp: '上一步生成的時間戳',
nonceStr: '上一步中的字元串',
signature: '上一步生成的簽名',
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 功能列表,我們要使用JS-SDK的什麼功能
});
// config信息驗證後會執行ready方法,所有介面調用都必須在config介面獲得結果之後,config是一個客戶端的非同步操作,所以如果需要在 頁面載入時就調用相關介面,則須把相關介面放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的介面,則可以直接調用,不需要放在ready 函數中。
wx.ready(function(){
// 獲取「分享到朋友圈」按鈕點擊狀態及自定義分享內容介面
wx.onMenuShareTimeline({
title: '分享標題', // 分享標題
link:"分享的url,以http或https開頭",
imgUrl: "分享圖標的url,以http或https開頭" // 分享圖標
});
// 獲取「分享給朋友」按鈕點擊狀態及自定義分享內容介面
wx.onMenuShareAppMessage({
title: '分享標題', // 分享標題
desc: "分享描述", // 分享描述
link:"分享的url,以http或https開頭",
imgUrl: "分享圖標的url,以http或https開頭", // 分享圖標
type: 'link', // 分享類型,music、video或link,不填默認為link
});
});
</script>
Ⅱ 微信jssdk分享有文字限制嗎
我來解答,絕對正確:微信新版限制朋友圈字數不能超過700字,超過的不能發表。
另外,如果你剛成功發出一條朋友圈,但發現錯字,復制粘貼,然後修改發表,剛才成功發送現在就有可能提示要刪文字。這是因為朋友圈復制再重新粘貼,會自動加入好多空格,一般是在段落回車的後面。你可以粘在word里,查看下字數,我有一篇兩千多字,但空格竟然有兩萬多。所以,在word里打開"替換",查找內容輸上一個空格,被替換內容不填,然後點替換全部,這樣刪除所有空格再發表就可以了。我就是這么解決的。望~~
Ⅲ 如何用js屏蔽微信內置瀏覽器打開視頻後右上角的分享按鈕
隱藏微信網頁右上角的按鈕,可以用如下代碼:
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
// 下面這個專API隱藏右上角按鈕屬
WeixinJSBridge.call('hideOptionMenu');
});
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
// 下面這個API顯示右上角按鈕
WeixinJSBridge.call('showOptionMenu');
});
Ⅳ 微信內H5網頁 禁止分享和復制鏈接
最近一個活動頁H5,需求是不給用戶分享(居然還還有這種要求)。
首先,這個api沒有被廢棄,還可以使用,如果你看了
https://blog.csdn.net/qq_21119513/article/details/81383371
這篇文章,請不要在意,自己按照下面的方法動手試一試。
查看官方api文檔或者度爹,可以搜到很多
不用的時候覺得很雞肋,用到的時候覺非常好用的api
這里隨便列幾個:
大家基本都看到了這個api
沒錯,用的就是這個。
項目用的是vue,之前封裝過一個分享的方法用於全局,所以直接操刀改一改就行了
在方法的參數最後面加上hideitems,wx.ready內加上判斷是否有hideitems,有的話,使用wx.hideMenuItems隱藏。
這樣基本就完成了。
當然,你可能也會碰到報錯:
the permission value is offline verifying
檢查 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','hideMenuItems']
調用的api是否注冊進了jsApiList。
如果你只是僅做調試,那麼可以參考:
https://blog.csdn.net/qq_39276317/article/details/106573960
這篇文章的做法。註:此方法注冊的api,僅在調試器內生效,如果你不解決此問題,項目發布至線上後依舊不會生效。
做些按鈕名稱的記錄
Ⅳ 如何控制微信分享網頁時,展示的標題,描述和圖片
設置微信分享的網頁展示圖片、標題、描述的方法如下:
在<head></head>標簽內加上一個meta標簽
<meta name="sharecontent" data-msg-img="你的縮略圖地址" data-msg-title="你的標題" data-msg-content="你的簡介" data-msg-callBack="" data-line-img="你的縮略圖地址" data-line-title="你的標題" data-line-callBack=""/>
微信公眾號的文章分享格式也是這樣的。
Ⅵ 【求幫助】 微信JSSDK 分享介面,調用沒反應
你在wx.config時,打開調試模式,自己測試測試,在調試模式下,都會alert信息出來,看版看alert出來的是什麼信息。
Ⅶ 微信公眾號開發 js-sdk分享失敗
你注入的配置版本好像太低了,http://res.wx.qq.com/open/js/jweixin-1.0.0.js,現在微信已經更新到1.4.0