【问题标题】:Quckblox q-municate Video chat 'Token Required'Quckblox q-municate 视频聊天“需要令牌”
【发布时间】: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;

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

【问题讨论】:

    标签: android api quickblox


    【解决方案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(...
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        相关资源
        最近更新 更多