Создание сайта с помощью DirectLineJS

Я пытаюсь настроить DirectLineJS для работы на веб-сайте только для целей тестирования прямо сейчас. Я создал репозиторий DirectLineJS и добавил /built/directLine.js в папку моего веб-сайта, следуя документации здесь https://github.com/Microsoft/BotFramework-DirectLineJS

На странице HTML я просто использую кнопку, чтобы попытаться отправить сообщение по прямой линии

<html>

<head>
    <meta charset="UTF-8" />
    <title>Bot Chat</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="http://unpkg.com/botframework-directlinejs/directLine.js" type="javascript"></script>

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <style>
        .wc-chatview-panel {
            width: 320px;
            height: 500px;
            position: relative;
        }

        .h2 {
            font-family: Segoe UI;
        }
    </style>
</head>

<body>

    <h2 style="font-family:Segoe UI;">Welcome to my custom Bot!</h2>
    <section class="container"> 

        <input id="clickMe" type="button" value="clickme" onclick="connectDirectLine();" />

    </section>

    <textarea id="myTextarea">
342 Alvin Road
Ducksburg</textarea>

    <p>Click the button to change the contents of the text area.</p>

    <button type="button" onclick="myFunction()">Try it</button>

    <script>
        function myFunction() {
            var text = document.getElementById("myTextarea").value;
            console.log(text)
        }
    </script></body>

</html>

<script>        
        function connectDirectLine() {

            import { DirectLine } from 'botframework-directlinejs';
            var directLine = new DirectLine({
                secret: "mySecret",
            });

            directLine.postActivity({
                from: { id: 'myUserId', name: 'myUserName' }, // required (from.name is optional)
                type: 'message',
                text: 'a message for you, Rudy'
            }).subscribe(
                id => console.log("Posted activity, assigned ID ", id),
                error => console.log("Error posting activity", error)
                );

            directLine.activity$
                .filter(activity => activity.type === 'message' && activity.from.id === 'yourBotHandle')
                .subscribe(
                message => console.log("received message ", message)
                );
        }
</script>
<html

Когда я запускаю веб-сайт, я получаю сообщение об ошибке: неожиданный импорт токена из import { DirectLine } from "botframework-directlinejs";

как мне правильно импортировать файл botframework-directlinejs, чтобы я мог использовать объект DirectLine?


person Teragon    schedule 27.04.2017    source источник


Ответы (1)


Вы смешиваете TypeScript с JavaScript.

Чтобы использовать Direct Line, добавьте следующее в HTML своей страницы:

<script src="http://unpkg.com/botframework-directlinejs/directLine.js"/>

Затем вы должны удалить свой оператор Import и, наконец, обновить код, создающий объект DirectLine, следующим образом:

 var directLine = new DirectLine.DirectLine({
     secret: "mySecret",
 });

Обратите внимание на DirectLine.DirectLine

person Ezequiel Jadib    schedule 27.04.2017
comment
Поэтому я добавил это в HTML, однако оператор импорта Connector.js по-прежнему вызывает ту же проблему. Нужно ли переносить скрипт на html страницу? - person Teragon; 27.04.2017
comment
Вам нужно удалить оператор импорта! Извините, я не был ясен - person Ezequiel Jadib; 27.04.2017
comment
Не волнуйтесь! Теперь я удалил оператор импорта, но на этот раз я получаю сообщение об ошибке index.html: 77 Uncaught ReferenceError: DirectLine не определен в connectDirectLine - person Teragon; 27.04.2017
comment
Что произойдет, если вы добавите import { DirectLine } из 'botframework-directlinejs';? - person Ezequiel Jadib; 27.04.2017
comment
наличие этого в функции connectDirectLine() вызывает неожиданный импорт токена, который я получал раньше - person Teragon; 27.04.2017
comment
это другое; это не то же самое, что было раньше, см. botframework-directlinejs - person Ezequiel Jadib; 27.04.2017
comment
Я знаю, раньше у меня был import { DirectLine } from "directLine.js";, но все же, если я поставлю твой import { DirectLine } from 'botframework-directlinejs';, я получу неожиданный импорт токена - person Teragon; 27.04.2017
comment
Хорошо, я решил это. Прежде всего удалите type=javascript из объявления скрипта, но самое главное, вам нужно обновить вызов var directLine = new DirectLine.DirectLine({ - person Ezequiel Jadib; 28.04.2017