微信jssdk開発前楽屋
7172 ワード
最近jssdkを開発しました.バックエンドコードは主に無数に踏みました.その後一つのモジュールqc-wechat-jssdkを発見しました.このモジュールを利用して開発しました.
バックエンドはnodejsを採用しています
このモジュールはキャッシュとしてmemory-cacheを使用しています.ticket1、
1、
この方法はaccess_をキャッシュしません.token、jsapi_ticketは、制限回数があり、ユーザー定義のキャッシュメカニズムが必要です.
バックエンドはnodejsを採用しています
このモジュールはキャッシュとしてmemory-cacheを使用しています.ticket1、
npm install qc-wechat-jssdk
2、プロファイル const _jssdk = require('qc-wechat-jssdk')
_jssdk.configure({
appId:config.appid,
secret:config.secret
})
3、先端jssdkを取得するために必要なパラメータ:noncenter、signature、timestamp // url , , , 。
let url = req.query.url
let data =await _jssdk.getjssdk(url)
console.log(data)
ダタの値 "timestamp": "1586765360",
"nonceStr": "melrd7dk5a",
"signature": "",
"jsapi_ticket": "",
"appId": "",
"url": ""
このモジュールの他の方法1、
getTokenAndTicket
、access_を取得する.token、jsapi_ticketこの方法はaccess_をキャッシュしません.token、jsapi_ticketは、制限回数があり、ユーザー定義のキャッシュメカニズムが必要です.
let data = await _jssdk.getTokenAndTicket()
console.log(data)
ダタの値{
token:'',
ticket:''
}
2、sign方法で、署名を生成するlet signData = _jssdk.sign(ticket,url)
console.log(signData)
signDataの値{
timestamp: "1587086143",
nonceStr: "aowjqxuvfr",
signature: "",
jsapi_ticket: "",
appId: "",
url: ""
}
先端
Title
function ajax(options){
// ajax
var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP");
// {a:1,b:2} a=1&b=2;
var str = "";
for(var key in options.data){
str+="&"+key+"="+options.data[key];
}
str = str.slice(1)
if(options.type == "get"){
var url = options.url+"?"+str;
xhr.open("get",url);
xhr.send();
}else if(options.type == "post"){
xhr.open("post",options.url);
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhr.send(str)
}
//
xhr.onreadystatechange = function(){
//
if(xhr.readyState == 4 && xhr.status == 200){
var d = xhr.responseText;
//
options.success&&options.success(d)
}else if(xhr.status != 200){
//
options.error&&options.error(xhr.status);
}
}
}
function wxjs2(){
var _shareurl = window.location.href;
var url = location.href.split('#')[0];//( url, request.getRequestURL )
url = encodeURIComponent(url)
console.log(url)
ajax({
type:"get",
url:"/api/gvrchat/jssdk",//
data:{url:url},// url
success:function(data){
console.log(data)
var obj = JSON.parse(data).data;
console.log(obj);
wx.config({
debug: true,
appId: obj.appId,
timestamp: obj.timestamp,
nonceStr: obj.nonceStr,
signature: obj.signature,
jsApiList: ['updateAppMessageShareData','updateTimelineShareData']
});
// var formLst = JSON.parse($("#session").html());
var friendShareTitle = " ";
var friendShareDesc = " ";
var friendShareImgUrl = "http://video2.gvrcraft.com/pic/yxk.jpg";
var cfShareTitle = "";
var cfShareImgUrl = "";
wx.ready(function () { //
wx.updateAppMessageShareData({
title: friendShareTitle, //
desc: friendShareDesc, //
link: _shareurl, // , JS
imgUrl: friendShareImgUrl //
});
wx.updateTimelineShareData({
title: cfShareTitle, //
link: _shareurl, // , JS
imgUrl: cfShareImgUrl //
});
elseShareMathod(cfShareTitle,_shareurl,cfShareImgUrl,friendShareDesc)
wx.error(function (res) {
alert(res.toString())
});
});
}
})
}
function elseShareMathod(title,link,imgUrl,desc){
wx.updateTimelineShareData({
title: title, //
link: link, // , JS
imgUrl: imgUrl, //
success: function () {
//
}
})
wx.onMenuShareTimeline({
title: title, //
link: link, // , JS
imgUrl: imgUrl, //
success: function () {
//
}
})
wx.onMenuShareAppMessage({
title: title, //
desc: desc, //
link: link, // , JS
imgUrl: imgUrl, //
// type: '', // ,music、video link, link
// dataUrl: '', // type music video, ,
success: function () {
//
}
});
wx.onMenuShareQQ({
title: title, //
desc: desc, //
link: link, //
imgUrl: imgUrl, //
success: function () {
//
},
cancel: function () {
//
}
});
wx.onMenuShareWeibo({
title: title, //
desc: desc, //
link: link, //
imgUrl: imgUrl, //
success: function () {
//
},
cancel: function () {
//
}
});
wx.onMenuShareQZone({
title: title, //
desc: desc, //
link: link, //
imgUrl: imgUrl, //
success: function () {
//
},
cancel: function () {
//
}
});
}
wxjs2()