Я пытался настроить MS Bot в приложении. До сих пор я делал следующее.
установить конечную точку REST для бота, этот коннектор будет ее слушать.
app.post("/botapi/messages", connector);
получить APP_ID и APP_PASSWORD, эмулятор успешно подключен к следующему,
http://localhost:4000/botapi/messages APP_ID APP_PASSWORD
- это успешно, - ответил бот, как и ожидалось.
Пытался поговорить с ботом с помощью Direct Line API. Успешно начали разговоры. Один из ответов следующий.
{ "conversationId": "3JYZyAn5VYB3HNcO3tcgtn", token: .... ..... }
Как сказано в документации, я использовал пакеты "node-fetch" для отправки запроса POST.
Однако я не могу отправить активность с помощью Direct Line API, получил
internal server error 500
В документации сказано, что запрос POST должен быть таким, как показано ниже.
POST
https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer my_secret
Это отлично сработало для начала разговора, но не для отправки действий.
Я отправил следующее:
{
"type": "message",
"from": {
"id": "user1"
},
"text": "hello Bot, say something"
}
Я не думаю, что id - это что-то важное, поэтому я написал это в
https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities
Я использовал идентификатор разговора, полученный при начале разговора. Я погуглил, но не нашел ответа на свою проблему. К тому же у меня мало вопросов, может быть, их ответы мне помогут.
Q1: URL "https://directline.botframework.com/v3/directline/ "одинаково для всех, кто использует Direct Line API? Когда я заменяю его конечной точкой бота, "http://localhost:3000/botapi/messages/conversations ", даже разговоры завести не могу, ничего не работает.
Q2: Как работает Direct Line API? Я отправляю POST свой секрет API, как тогда API находит моего бота? Как взаимодействуют бот и API? я что-то упускаю?
Q3: Когда я отправляю запрос POST для отправки действия, я следовал документации. В авторизации я попробовал и свой секрет, и токен, который я получил от начала разговора, и то, и другое не сработало. Я считаю, что оба должны работать. я ошибся?
Вопрос 4. Нужно ли мне что-то делать с Служба коннектора ботов? Я прочитал статью, но не знаю, для чего она нужна. я ошибся?
Итак, что мне здесь не хватает? Как я могу отправить действия?
Примечание. Мой бот не развернут на azuri или aws, он есть только на моем Mac. Но у меня есть APP_ID, APP_PASSWORD и SECRET для DirectLine, как описано в документах.