1

Передача данных о имени пользователя и id пользователя в чат бот

Тема: Передача данных о имени пользователя и id пользователя в чат бот

Передача данных о наименовании пользователя и id пользователя в чат бот

Добрый день! Мне необходимо в чат бот передать значение имя пользователя и его id. Для этого я вызываю функцию loader.push, которая срабатывает когда всё инициализировано.

Затем я выполняю запрос на получение Hash и из хеша по запросу получаю имя пользователя и id пользователя. Затем мне необходимо передать эти два параметра в чат бот, чтобы у нас была идентификация пользователя в чат боте. Но к сожалению почему то переменным не присваивается  значения полученные в функции useAuthHash почему то функция  не срабатывает.  Если вставить функции getHash, useAuthHash по кнопке то они сработают. Так же если в чат бот прописать статически значение, то всё сработает. Подскажите что может быть с функциями Wialon getHash, useAuthHash почему они не выдают результата и не записывают данные в переменные nameUsr, idUsr? Может есть другие методы получение имя пользователя и id пользователя? Може данные функции не могут срабатывать в loader.push? 

Код:
// Asking Wialon to run our function when everything's initialized
loader.push(function () {
    WebCMS.after_init_call(function () {
        // make sure that if an error occurs, it doesn't break other scripts on the page
        try {
           
            let nameUsr = '';
            let idUsr = '';
           
            function getHash() {
                var prms = {}
                var remote = wialon.core.Remote.getInstance();
                remote.remoteCall('core/create_auth_hash', prms,
                    function (code,result) {
                        if(code) {
                            console.log('error');
                            return;
                        }
                        console.log('res = ' + wialon.util.Json.stringify(result));
                        var authHash = result.authHash;
                        console.log('authHash = ' + authHash);
                        useAuthHash(authHash);
                    })
                }

            function useAuthHash(data) {
                var prms = {"authHash":data}
                var remote = wialon.core.Remote.getInstance();
                remote.remoteCall('core/use_auth_hash', prms,
                    function (code,result) {
                        if(code) {
                            console.log('error');
                            return;
                        }
                    console.log('res = ' + wialon.util.Json.stringify(result));
                    nameUsr = result.user.nm;
                    idUsr = result.user.id;
                    console.log('userName = ' + nameUsr);
                    console.log('iduser = ' + idUsr);
                    })

                }           

(function(w,d){
        w.ChatBot=function(){w. ChatBot.q.push(arguments)};w. ChatBot.q=[];
        ………

    function runChatBotMethods() {
        ChatBot('init', 'user', {
            applicationId: 5,
            applicationSecret: ‘key',
            user: {
                name: nameUsr,
                user_id: idUsr,
            }
        })

        ChatBot('showChatWidget');
    }

    …..


} catch (error) {
            // do nothing or trigger some url that notifies you of problems
            console.log(error)
        }
    });
});

2

Передача данных о имени пользователя и id пользователя в чат бот

Re: Передача данных о имени пользователя и id пользователя в чат бот

Если нужно просто получить name и id текущего пользователя, то в sdk_js есть отдельные методы для этого

user = wialon.core.Session.getInstance().getCurrUser()
console.log(user.getId(), user.getName())

Использование дополнительных вызовов use_auth_hash выглядит избыточным.

3

Передача данных о имени пользователя и id пользователя в чат бот

Re: Передача данных о имени пользователя и id пользователя в чат бот

Спасибо, shmi. Всё заработало.