- 确认小程序后台已经开通实时语音视频聊天功能
- 小程序端代码
wx.login({
complete: (res) => {
if(res.code){
wx.request({
method:"GET",
data:{code:res.code},
url: 'xxxxxxx.com',
success:(re)=>{
var data = re.data
t.setData({
data:data,
selfOpenId:data.openid
})
}
})
}
},
})
var t = this
wx.getSetting({
success:function(r){
console.log(r)
if(r.authSetting['scope.record']===true){
var data = t.data.data
wx.joinVoIPChat({
signature:data.sign,
nonceStr:data.nonceStr,
timeStamp:parseInt(data.timeStamp),
groupId:data.groupId,
complete:(re)=>{
console.log(re)
if(re.errMsg == 'joinVoIPChat:ok'){
var openIdList = re.openIdList
console.log(openIdList)
t.setData({
openIdList:openIdList
})
return
}
}
})
}else{
if(r.authSetting['scope.record']===false){
wx.openSetting({
})
}else{
wx.authorize({
scope: 'scope.record',
complete:(r)=>{
console.log(r)
}
})
}
}
}
})
- 后台获取签名逻辑 (php tp5.1 框架 )
public function getVideoSign(){
$appid = config('app.minappid');
$appsecret = config('app.minappecret');
$code = $this->request->param('code');
if(empty($code))
jsonReturn(0,'错误code');
$getInfoUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$appsecret}&js_code={$code}&grant_type=authorization_code";
$info = curl_get($getInfoUrl);
$info = json_decode($info,true);
if(!$info['session_key'])
jsonReturn(0,'session_key errors');
$data[] = $appid;
$data[] = $groupId = 'grop_ooo00_tests';
$data[] = $nonceStr = createNoncestr();
$data[] = $timeStamp = time();
sort($data,5);
$st = implode('',$data);
$hash = hash_hmac('sha256', $st,$info['session_key']);
return json_encode(['openid'=>$info['openid'],'sign'=>$hash,'nonceStr'=>$nonceStr,'timeStamp'=>$timeStamp,'groupId'=>$groupId]);
}
相关页面展示就要和ui 小姐姐沟通了, 目前作者没有测通实时视频画面 ,如有意见测通的 请留意,感激不尽…