我花了两天的时间试图理解和遵循Android中的“入门”部分(我是一个菜鸟,所以请慢慢来)。我还仔细阅读了Quickblox文档、堆栈溢出Quickblox &A和Quickblox示例代码。
请有人解释一下,我如何能够与Quickblox后端建立一个非常简单和基本的会话?
在自己尝试这样做的过程中,我遇到了/发现了以下几点:
在“入门”一节(在http://quickblox.com/developers/Android中)中,概述了以下步骤:
对于上面的#1,它给出了以下代码:
QBSettings.getInstance().fastConfigInit("961", "PBZxXW3WgGZtFZv", "vvHjRbVFF6mmeyJ");我将上述内容放在我的活动的OnCreate方法中。
然后,对于#2,它表示“要创建应用程序会话,请使用以下代码:”
QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
// success
}
@Override
public void onError(List<String> errors) {
// errors
}
});我还将其添加到我的OnCreate中。
对于#3,我继续使用建议的代码。在这种情况下,我正在创建一个新用户:
// Register new user
final QBUser user = new QBUser("userlogin", "userpassword");
QBUsers.signUp(user, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess(QBUser user, Bundle args) {
// success
}
@Override
public void onError(List<String> errors) {
// error
}
});以下是我的完整OnCreate代码:
public class ChatCategoryActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_category);
Toast.makeText(getApplicationContext(), "Toast Test!",
Toast.LENGTH_LONG).show();
//Initialize quickblox framework
QBSettings.getInstance().fastConfigInit("29430", "XNKu54nymZXFq3c", "3vy372mwtYwfJU7");
//create a quickblox application session
QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
// success
Toast.makeText(getApplicationContext(), "App session created!",
Toast.LENGTH_LONG).show();
}
@Override
public void onError(List<String> errors) {
// errors
Toast.makeText(getApplicationContext(), "Failed to create app session!",
Toast.LENGTH_LONG).show();
}
});
// Register new user
final QBUser user = new QBUser("bob1", "bobobob1");
QBUsers.signUp(user, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess(QBUser user, Bundle args) {
// success
Toast.makeText(getApplicationContext(), "User signed up!",
Toast.LENGTH_LONG).show();
}
@Override
public void onError(List<String> errors) {
// error
Toast.makeText(getApplicationContext(), "User sign-up failed!",
Toast.LENGTH_LONG).show();
}
});
}
}因此,当我运行它时,根据触发的吐司,应用程序会话无法创建。此外,应用程序发布的URL是:
https://api.quickblox.com/session.json?application_id=29430&auth_key=XNKu54nymZXFq3c&nonce=166079749×tamp=1444750770&signature=a412ecb12db54842f6816968a734b4fc2626509d答复是:
{"errors":["Token is required"]}在Android中,唯一提到“令牌”的地方是:
还可以使用现有的QuickBlox令牌初始化SDK。当您构建一个大系统时,如果您拥有生成QuickBlox令牌的服务器端,它可能会很有趣,例如……
这意味着这个标记是不必要的。但很明显是这样。
有人能帮我解决我所缺少的东西吗?我将非常感谢我需要的代码,包括如何生成令牌(包括SHA签名)并使用它初始化框架、创建会话、创建/登录用户等等.
非常感谢!
发布于 2015-10-13 16:43:59
第一次检查:互联网连接,您在您的舱单中有互联网许可吗?
<uses-permission android:name="android.permission.INTERNET"/>您创建会话和用户的代码看起来很好,但是您只能在创建会话后注册!
使用您的代码,如下所示:
public class ChatCategoryActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initialize quickblox framework
QBSettings.getInstance().fastConfigInit("29430", "XNKu54nymZXFq3c", "3vy372mwtYwfJU7");
//create a quickblox application session
QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
// success
Toast.makeText(getApplicationContext(), "App session created!",
Toast.LENGTH_LONG).show();
// Register new user
final QBUser user = new QBUser("bob1", "bobobob1");
QBUsers.signUp(user, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess(QBUser user, Bundle args) {
// success
Toast.makeText(getApplicationContext(), "User signed up!",
Toast.LENGTH_LONG).show();
}
@Override
public void onError(List<String> errors) {
// error
Toast.makeText(getApplicationContext(), "User sign-up failed!",
Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onError(List<String> errors) {
// errors
Toast.makeText(getApplicationContext(), "Failed to create app session!",
Toast.LENGTH_LONG).show();
}
});
}
}如果凭据正常,则应创建一个新用户。(出于安全考虑,请不要忘记重置凭据并更新代码。)
https://stackoverflow.com/questions/33107937
复制相似问题