Отправка уведомлений в канал бота - PullRequest
0 голосов
/ 21 марта 2019

Сейчас я нахожусь в процессе одобрения получения моего приложения в магазине. Один из оставшихся вопросов:

1. Employer and Employee both didn’t receive any notification in the channel bot

Мой бот в данный момент настроен на notificationOnly в manifest.json, так как мне не нужно / не хочу, чтобы пользователи отправляли ему сообщения напрямую.

Просматривая документацию "Проактивные сообщения", немного неясно, какие сообщения и когда отправлять их, могут пройти вышеупомянутую ошибку.

Нужно ли отправлять сообщение на канал?

Я сейчас использую NodeJS

Спасибо

1 Ответ

0 голосов
/ 21 марта 2019

Это длинный ответ, охватывающий многие области, просто потому, что я не на 100% уверен, что знаю, какого рода уведомление вы не получаете. Пожалуйста, добавьте дополнительную информацию к вашему вопросу, если он не отвечает, и я отредактирую этот ответ.

Устранение неполадок

  • Руководство по поиску и устранению неисправностей
    • Обратите особое внимание на множество областей, где необходимо включить уведомления
      • В частности, пользователю может потребоваться «Следить» и / или «Избранный» канал, чтобы получать от него уведомления
  • Если у пользователя открыто настольное приложение, он получит уведомление и не получит его на свой телефон, если он не будет активен в настольном приложении более 3 минут. В противном случае это скорее всего ошибка в командах.

Уведомления чата

Если вы следовали руководству по устранению неполадок, указанному выше, ваши пользователи должны получать уведомления в чате. Если нет, попробуйте обновить настольный или мобильный клиент MS Teams. Также может быть полезно @ упомянуть пользователей и / или каналы

Отправка действия с обычным уведомлением

Часто ключевая проблема заключается в добавлении кода trustServiceUrl снизу. Обычно игнорирование этого проявляется с ошибкой 500, но для команд, похоже, не создает уведомлений. В основном вам нужно установить пару свойств turncontext.activity и доверять serviceUrl.

Создание некоторых ключевых переменных:

const teamsChannel = '19:8d60061c3d10xxxxxxxxxxxxxxxx@thread.skype';
const serviceUrl = 'https://smba.trafficmanager.net/amer/';
  • Примечание: самый простой способ получить эти переменные - это отправить сообщение от Команды боту, установив точку останова для входящего действия
  • serviceUrl, вероятно, зависит от географического региона

Отправить мероприятие

// This ensures that your bot can send to Teams - serviceUrl ensures notifications, too
turnContext.activity.conversation.id = teamsChannel;
turnContext.activity.serviceUrl = serviceUrl;
MicrosoftAppCredentials.trustServiceUrl(serviceUrl);

await turnContext.sendActivity(yourActivity);

Уведомления фида активности

Вы также можете создавать уведомления фида активности . Суть в том, что вам нужно:

  1. Включить text и summary в сообщение
  2. Включить channelData, который устанавливает notifications.alert в истинное значение

Этот код выполнит следующее:

const msg = MessageFactory.text('my message');
msg.summary = 'my summary';
msg.channelData = {
    notification: {
        alert: true,
    },
};
return await dc.context.sendActivity(msg);

Результат:

enter image description here enter image description here

Примечание. Чтобы получать уведомления, вы и ваши пользователи должны следовать за каналом.

...