Я использую сервер quickblox и разрабатываю приложение на Java. К настоящему времени у меня возникла странная проблема: в своей деятельности я выполняю вход с помощью APP_ID, AUTH_KEY и AUTH_SECRET, и когда я перехожу к другому фрагменту (не активности), мне удается загрузить данные. Проблема в том, что когда я переключаюсь на другой фрагмент и пытаюсь вытащить данные, result.isSuccess() возвращает false и говорит, что требуется Token. Я искал об этом токене и нашел некоторую информацию об этом, но еще не видел способа, как его получить.
Это код, куда я помещаю данные (и он отлично работает):
HashMap<String, Object> fields = new HashMap<String, Object>();
String username = usernamefield.getText().toString();
String moza = mozafield.getText().toString();
String yaad = yaadfield.getText().toString();
fields.put("username", username);
fields.put("from",moza);
fields.put("whereto", yaad);
QBCustomObject qbCustomObject = new QBCustomObject();
qbCustomObject.setClassName("FromTo"); // your Class name
qbCustomObject.setFields(fields);
QBCustomObjects.createObject(qbCustomObject, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
QBCustomObjectResult qbCustomObjectResult = (QBCustomObjectResult) result;
QBCustomObject qbCustomObject = qbCustomObjectResult.getCustomObject();
String getid = qbCustomObject.getCustomObjectId();
//String getusername = qbCustomObject.get
Bundle bndl = new Bundle();
bndl.putString("id", getid);
callback.savedDetails(bndl);
} else {
Log.e("Errors",result.getErrors().toString());
}
}
});
и здесь я пытаюсь получить данные, и у меня возникает проблема с токеном:
QBCustomObjectRequestBuilder requestBuilder = new QBCustomObjectRequestBuilder();
QBCustomObjects.getObjects("FromTo", requestBuilder, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
super.onComplete(result);
if (result.isSuccess()) {
QBCustomObjectLimitedResult coresult = (QBCustomObjectLimitedResult) result;
ArrayList<QBCustomObject> co = coresult.getCustomObjects();
Log.d("Records: ", co.toString());
} else {
Log.e("Errors",result.getErrors().toString());
}
}
});
}
Код входа:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
.
.
.
.
QBSettings.getInstance().fastConfigInit(String.valueOf(APP_ID), AUTH_KEY, AUTH_SECRET);
QBUser user = new QBUser(myusername, mypassword);
QBAuth.createSession(user , this , QBQueries.SIGN_IN);
.
.
@Override
public void onComplete(Result result, Object context) {
QBQueries qbQueryType = (QBQueries) context;
if (result.isSuccess()) {
switch (qbQueryType) {
case SIGN_IN:
// return result from QBAuth.authorizeApp() query
QBSessionResult qbSessionResult = (QBSessionResult) result;
DataHolder.getDataHolder().setSignInUserId(qbSessionResult.getSession().getUserId());
break;
}
}
}
EDIT: Я получил токен, вопрос в том, где я должен его использовать?