Quckblox q-municate 视频聊天“需要令牌”

Posted

技术标签:

【中文标题】Quckblox q-municate 视频聊天“需要令牌”【英文标题】:Quckblox q-municate Video chat 'Token Required' 【发布时间】:2014-07-11 20:30:00 【问题描述】:

使用 Quickblox 的 q-municate for android 并在一天的视频聊天中取得了成功。

我现在收到一个错误,只是说“需要令牌”。根据 Quickblox 文档,我知道会话在两小时后超时。

是否有关于如何解决此问题的教程?

我已阅读此documentation,但仍然不知道如何将它们拼凑在一起。

我在 QBAuthHelp.java 文件中找到了这段代码,这是验证视频聊天的方法吗?

public QBUser login(QBUser inputUser) throws QBResponseException, BaseServiceException 
    QBUser user;
    QBAuth.createSession();
    String password = inputUser.getPassword();
    user = QBUsers.signIn(inputUser);
    String token = QBAuth.getBaseService().getToken();
    user.setPassword(password);
    AppSession.startSession(LoginType.EMAIL, user, token);
    return user;

在这里感谢您的帮助,我是这里的新手。

【问题讨论】:

【参考方案1】:

您需要使用 QBAuth 方法在您的应用中获取会话。 需要认证,所以你可以成功获取Token并创建会话。

【讨论】:

我相信我已经找到了 session QBAuth 方法,它在上面的问题中列出。对于我在这里可能做错的事情,我非常感谢任何帮助。【参考方案2】:

在您注册后启动您的应用程序以首先使用您的 quickblox 帐户对您的应用程序进行身份验证。 1.在您的应用程序中创建应用程序类。

public class VideoChatApplication extends Application 

   @Override
   public void onCreate() 
   super.onCreate();

          QBSettings.getInstance().fastConfigInit(Constant.APP_ID,
        Constant.AUTH_KEY, Constant.AUTH_SECRET);
  


2 在清单文件中定义您的应用程序类

<application
android:name=".VideoChatApplication"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
    android:name=".Signup"
    android:label="@string/app_name"
    android:screenOrientation="portrait" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity></application>

3首先你需要在登录用户后注册用户

    private void createSession(final String login, final String password) 
    final QBUser user = new QBUser(login, password);
    QBAuth.createSession(login, password,
            new QBEntityCallbackImpl<QBSession>() 
                @Override
                public void onSuccess(QBSession session, Bundle bundle) 
                    user.setId(session.getUserId());

                    QBChatService.getInstance().login(user,
                            new QBEntityCallbackImpl<QBUser>() 

                                @Override
                                public void onSuccess(QBUser result,
                                        Bundle params) 

                                

                                @Override
                                public void onSuccess() 
                                    // login success

                                

                                @Override
                                public void onError(List errors) 
                                    Toast.makeText(this,
                                            "Error when login",
                                            Toast.LENGTH_SHORT).show();
                                    for (Object error : errors) 
                                    
                                
                            );

                

                @Override
                public void onSuccess() 
                    super.onSuccess();
                

                @Override
                public void onError(List<String> errors) 
                    Toast.makeText(this,
                            "Error when login, check test users login and password",
                            Toast.LENGTH_SHORT).show();
                
            );

【讨论】:

【参考方案3】:

您是否修改了 Q-municate 代码?

“需要令牌”表示您正在尝试向 QuickBlox 后端发出请求(任何),但您之前没有创建会话。

所有 QuickBlox 应用程序中的第一个请求应该是会话创建请求:

QBAuth.createSession(...

然后等到此请求完成并执行任何其他请求

【讨论】:

以上是关于Quckblox q-municate 视频聊天“需要令牌”的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Quckblox 和 Flutter 接收消息和传入事件

在 Android Q-Municate 中未收到后台来电和消息通知

安装apk Q-municate时出错

无法登录或使用Q-municate v1.1.4 登录

如何在quickblox中默认打开后置摄像头

如何删除 QMChatViewController 底部的一些额外空间?