小程序开放了微信群能力,获取groupid是第一步,相关组件在组件的开放数据中,获取open-gid(微信群的groupid)就会自动获取群名称。
<open-data type="groupName" open-gid="xxxxxx"></open-data>
open-gid通过wx.getShareInfo带参数shareTicket(页面内分享可获取)的callback得到加密数据encryptedData,经解密后即可获得。encryptedData解密需要appid,sessionKey,iv 。sessionKey需要通过
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
其中的JSCODE需要调用wx.login获取。解密需要在服务器端进行。
App.js代码如下:定义全局变量sessionKey
App({globalData: {
sessionKey: null,}
,onLaunch: function (ops) {
console.log(ops)var that=thiswx.login({
success: function (res) {console.log(res) // 使用这个 code 向微信换取 session_key
var js_code=res.codewx.request({url: 'http://www.st122.cn/xcx/php/getsec.php', //仅为示例,并非真实的接口地址data: {code: js_code,},success: function (res) {console.log(res.data)that.globalData.sessionKey = res.data}})}})}
})
hello.js文件如下,注意解密后的数据类型为str需转为obj。
var app = getApp()Page({onShareAppMessage: function (res) {var that=thisif (res.from === 'button') {// 来自页面内转发按钮console.log(res)console.log(app.globalData.sessionKey)}wx.showShareMenu({withShareTicket: true})return {title: '获取本群名称',path: '/pages/hello/hello',success: function (res) {// 转发成功console.log()var ticket = res.shareTickets[0]wx.getShareInfo({shareTicket: ticket,success: function (res) {console.log(res)var encrypt = res.encryptedDatavar iv=res.ivwx.request({url: 'http://www.st122.cn/xcx/php/demo.php', //仅为示例,并非真实的接口地址data: {encrypt: encrypt,iv:iv,sessionKey: app.globalData.sessionKey},success: function (res) {console.log(res)console.log(res.data)var x = res.data;console.log(typeof(x))var y = eval(













