2015-12-06 4 views
0

Я новичок в QuickBlox и задаю пару вопросов. Я пробовал поиск через StackOverflow и в другом месте, но, похоже, на мои вопросы нет ответов. Я вполне мог пропустить что-то в документации QuickBlox (или не знал о чем-то в отношении JavaScript).Вопросы с использованием QuickBlox JavaScript SDK

Это относится к SDK JavaScript, поскольку я буду использовать это для реализации функции чата. Идея состоит в том, чтобы добавить функцию чата в веб-приложение, построенное с помощью Laravel.

Мой первый вопрос касается инициализации/авторизации. Кажется очень небезопасным иметь ваши ключи QuickBlox auth в файле JavaScript, так как файл можно легко просмотреть с помощью опции «Просмотр источника» браузера. Как бы вы скрыли эту конфиденциальную информацию?

Имея это в виду, я изучил это с помощью PHP. Используя пример кода из документации, я могу успешно получить токен сеанса. Затем я получил копию приложения чата из SDK и пытался интегрировать код PHP в это, так что вместо использования config.js он использует мой php для получения токена и передает его в QB.init. Но похоже, что это не сработает. Приложение чата просто сидит там. Глядя на отладчик JS в Firebug, кажется, что возникает исключение: невозможно создать новый сеанс без учетных данных приложения. Что меня озадачивает, когда я получаю это через PHP? Почему это не сработает на стороне JavaScript?

Спасибо.

+0

Глядя в заблуждение, от того, что я могу видеть, что это исключение происходит при нажатии на кнопку пользователь (у примера приложения есть пользователь Quick и пользователь Blox, я изменил данные пользователя, чтобы использовать 2 пользователей, которых я установил в своей учетной записи). Таким образом, при нажатии на первого пользователя он пытается войти в этот пользователь, и я думаю, что именно здесь исходит исключение. – zetetic

ответ

1

Замечательно! Я уже представил это как вопрос к ним:

https://github.com/QuickBlox/quickblox-javascript-sdk/issues/72

Выполните следующие действия, чтобы решить проблему (это обходной путь):

QB.init(token, false, false, QBConfig); 
QB.service.getSession().application_id = your_app_id; 

И .. У меня есть идея для PR, но на самом деле обходной путь будет делать пока.

EDIT:

Попробуйте следующее ...

var QBConfig = { 
    chatProtocol: { 
     active: 2 
    }, 
    debug: !true, 
    webrtc: { 
     answerTimeInterval: 30, 
     dialingTimeInterval: 5 
    }, 
    creds: { 
     appId: YOUR_APP_ID 
    } 
}; 

QB.init(token, false, false, QBConfig); 
QB.service.getSession().application_id = your_app_id; // probably still need this too 

Теперь попробуйте это (при условии, что вы используете оригинальный JS из образца):

function createSession() { 
    //QB.createSession(caller, function(err, res) { 
    //if (res) { 
     connectChat(); 
    // } 
    //}); 
} 
+1

Я предполагаю, что QBConfig - это всего лишь массив с другими параметрами и т. Д.? Я ввел код, но все равно получаю исключение. – zetetic

+1

правильный - я могу взглянуть на это позже сегодня. Их JS SDK менее популярен, чем их Android, поэтому есть еще несколько причуд, с которыми вы столкнетесь. – Clay

+1

и .. вы используете последнюю версию? 1,17? – Clay

1

Вы правы с надстройкой PHP. Это может помочь вам защитить ваши учетные данные QB.

Другое решение - создать собственный скрипт, который будет создавать ваши учетные данные, что-то вроде логики обфускации. Затем уменьшите этот скрипт, чтобы скрыть все логические детали.

Во всяком случае, если вы решили использовать QB.init («маркер»), то вам не нужно использовать QB.createSession вообще. QB.init («токен») используется для обхода вызова QB.createSession.

Смежные вопросы