Quickblox:无法通过tag_list获取用户。错误:需要令牌

时间:2017-03-14 15:07:56

标签: javascript angularjs quickblox

我需要让已经进入特定房间的用户。在登录tag_list参数时输入房间名称。我调整了示例代码以通过tag_list参数获取用户,但它说我需要一个令牌来获取访问权限。任何人都可以解释我没有复制的示例代码中发生的事情吗?这是我的代码:

$scope.callees = [$scope.user.id];
$scope.sessionType = QB.webrtc.CallType.VIDEO; // AUDIO is also possible
$scope.session = QB.webrtc.createNewSession($scope.callees, $scope.sessionType);
var mediaParams = {
    audio: true,
    video: true,
    options: {
        muted: true,
        mirror: true
    },
    elemId: 'localVideoEl',
    optional: {
        minWidth: 240,
        maxWidth: 320,
        minHeight: 160,
        maxHeight: 240
    }
};

QB.users.get(
    {
        'tags': [$scope.user.tag_list], 
        'per_page': 100
    }, 
function(err, result){
    if (err) {
        console.log(err);
    } else {
        console.log(result);
    }
});

1 个答案:

答案 0 :(得分:1)

Well Angular用户......原来答案是如此令人兴奋!!! (讽刺)事实证明你必须将请求包装在另一个QB.login和另一个QB.createSession ......

QB.createSession(function(err,result){
    if (result) {
        QB.login($scope.user, function(loginErr, loginUser){
            if (loginErr) {
                console.log('log in error');
                console.log(loginErr);
            }else {

// HANDLE USERS                     

                var params = {tags: [$scope.user.tag_list]};
                QB.users.get(params, function(err, result){
                    if (err){
                        console.log(err);
                    }else{
                        console.log(result);
                    }
                });

// HANDLE CHAT  

                QB.chat.connect(patient, function(err, res) {
                    if (err) { console.log(err); } else { console.log(res); }
                });

// HANDLE VIDEO 

                $scope.callees = [$scope.user.id];
                $scope.sessionType = QB.webrtc.CallType.VIDEO; // AUDIO is also possible
                $scope.session = QB.webrtc.createNewSession($scope.callees, $scope.sessionType);

                var mediaParams = {
                    audio: true,
                    video: true,
                    options: {
                        muted: true,
                        mirror: true
                    },
                    elemId: 'localVideoEl',
                    optional: {
                        minWidth: 240,
                        maxWidth: 320,
                        minHeight: 160,
                        maxHeight: 240
                    }
                };
                $scope.session.getUserMedia(mediaParams, function(err, stream) {
                    if (err){
                        //console.log(err);
                    }else{
                        //console.log(stream);
                    }
                });




            }
        });
    }else if (err) {
        console.log(err);
    }
});

所以看起来尽管有一个单页应用程序的所有努力,你仍然必须登录每一页...如果Angular社区中的任何人有更好的答案在每次路线更改后连续登录我不会讽刺地高兴!随意列出你的解决方案,我会把它标记为正确而不是我的......我觉得,这不是真正的答案......