使用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;
感谢您的帮助,我在这里是一个完整的新手。
答案 0 :(得分:3)
您需要使用QBAuth方法在您的应用中获取会话。 身份验证需要,因此您可以成功获取令牌并创建会话。
答案 1 :(得分: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();
}
});
}
答案 2 :(得分:1)
您是否修改了Q-municate代码?
&#34;令牌要求&#34;意味着您正在尝试向QuickBlox后端发出请求(任何),但之前没有创建会话。
所有QuickBlox应用程序中的第一个请求应该是会话创建请求:
QBAuth.createSession(...
然后等待此请求完成并执行任何其他请求