Как отправить упреждающее уведомление / широковещательное сообщение с использованием функций Azure пользователю по различным каналам? - PullRequest
1 голос
/ 23 апреля 2019

Мне нужно отправить упреждающее уведомление пользователю, которое запланировано на определенное время через Microsoft Bot V4.Я не совсем уверен, как поступить с этим.

В настоящее время я пытаюсь использовать функцию Azure для отправки упреждающего сообщения пользователю, однако я не уверен, что использовать для соединения между службой ботов и функциями Azure.Я посмотрел на Direct Line, но мне не ясно.

В настоящее время наилучшим подходом, который я могу придумать, является использование функции Azure и Direct Line для отправки упреждающих уведомлений пользователям.

Я тестировал Directline API через почтальона, но он не работал.Это говорит, что разговорный ID не найден.

https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities

JSON POST

{
    "type": "message",
    "from": {
        "id": "user1"
    },
    "text": "hello"
}

После того, как сообщение отправлено, оно должно дать мне идентификатор.

{
    "id": "0001"
}

Редактировать:

Iудалось понять мою проблему с Direct Line.Он не позволяет мне отправлять сообщения на разные каналы, такие как веб-чат или бот в Skype.Есть ли другой способ отправить сообщение моему пользователю в Skype?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Хорошо, так что я решил свою проблему. Используя разъем REST https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-authentication?view=azure-bot-service-4.0, я только что сделал большое предположение, что мне нужно использовать Direct Line

Возможно, я не объяснил ясно, в чем заключалась моя проблема. Спасибо за ответы!

0 голосов
/ 24 апреля 2019

Вам необходимо создать выходную среду бота, и здесь приведена информация о привязке для функции Azure, которая будет запускаться после каждой x минуты

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */1 * * * *"
    },
    {
      "type": "bot",
      "name": "$return",
      "botId": "Azurefunction",
      "secret": "AppSettingNameOfYourBot",
      "direction": "out"
    }
  ],
  "disabled": false
}

, а функция Azure -

с использованием System.;используя System.Net;используя System.Net.Http;использование Microsoft.Azure.WebJobs.Host;

открытый класс BotMessage {открытая строка Source {get;задавать;} публичная строка Message {get;задавать;}}

public static BotMessage  Run(TimerInfo myTimer ,TraceWriter log)
{
    BotMessage message = new BotMessage()
    {
        Source = "AzureFunction",
        Message = "Testing"
    };
    return message;
}

Также ваша конфигурация привязки настроена на использование возвращаемого значения вашей функции (также, в данном случае, которое не соответствует ни одному из типов, поддерживаемых привязкой), так вы можетеустановите связь между ботом и функцией Azure.

А для проблемы, связанной с API-интерфейсом прямой линии, проверьте эту ветку

Не удается отправить сообщение с использованием directlineapi в среде бота

Надеюсь, это поможет.

...