Алиса отправляет сообщения в Telegram

Материал из База знаний
Перейти к навигации Перейти к поиску



Навык "Электронный почтальон"

Диктуйте сообщения и отправляйте их в телеграм с умных колонок с Алисой!

Сделайте использование навыка максимально простым, когда заняты руки или нет телефона рядом попросите Алису "отправь сообщение <Имя получателя>", продиктуйте текст и подтвердите отправку.

Рекомендуемый способ использования навыка - создание сценария на каждого получателя с собственной фразой вызова, например:
"Отправь сообщение <Имя получателя>" и выполняемой командой на колонке
"Попроси электронного почтальона отправить сообщение <Имя получателя>".


Быстрый старт

Сообщения будет доставлять связанный с навыком бот, но для этого он должен знать id (уникальный номер) чата (лички) с получателем сообщения. Выполним несколько простых действий:

  1. В Telegram-аккаунте получателя добавим бота "Электронный почтальон (бот)", запустим его и узнаем у него нужный chat id.
  2. Дадим умной колонке команду "Алиса, запусти навык "Электронный почтальон". После запуска навыка:
    • просим его отправить сообщение;
    • на вопрос "Кому?" называем имя, под которым хотим сохранить получателя;
    • диктуем его ранее полученный chat id
    • подтверждаем сохранение.
  3. Создадим сценарий в " квазаре" (приложение Яндекс),
    • на фразу "Отправь сообщение <Имя получателя>" выбираем выполнение команды на колонке,
    • пишем "Попроси электронного почтальона отправить сообщение <Имя получателя>".

Ниже описано подробнее как это работает и нюансы использования и настройки навыка.

Для удобства сначала настройте получение сообщений в собственный телеграм. 
К тому же это пригодится позже для контроля списка сохраненных контактов.


Настраиваем Телеграм

Поскольку бот не может начать общение первым, всем будущим получателям надо самостоятельно найти бота в Telegram и начать с ним диалог.

  1. Вводим название бота - AliceSendMessageBot - в поиск tg. Должно отобразиться название "Электронный почтальон (бот)";
  2. Открываем чат с этим ботом, нажимаем "Старт" ("Запустить").

Бот в сообщении пришлёт наш chat id телеграм, который понадобится для сохранения контакта в навыке на умной колонке.

Если сообщения нужно отправлять в группу, то добавляем бота в эту группу и используем команду /mychatid для получения chat id группы. 
Обратите внимание: chat id для групп обычно начинается со знака "-", и при внесении такого контакта в навык нужно подтвердить минуса перед цифрами chat id.


Работа со списком контактов

Для удобства отправки контакты сохраняются под удобными именами вместо сложных id. Вы называете имя, а навык сам находит нужную личку или группу.


Добавление нового контакта

Добавление нового получателя в список контактов во время отправки нового сообщения происходит автоматически.
  1. Запускаем навык "Электронный почтальон" и на вопрос "Что вы хотите сделать?" отвечаем "Отправить сообщение".
  2. На вопрос "Кому?" - называем имя получателя. Если такого получателя ещё нет - будет предложено его сохранить.
  3. Если имя получателя не найдено, будет запрошен chat id
  4. Если проверка на корректное распознавание продиктованных данных прошла - подтверждаем сохранение в списке контактов на колонке.


Проверка списка контактов

Список сохраненных контактов можно отправить в телеграм одному из сохраненных получателей сообщений на умной колонке. Например, себе или членам семьи.
  1. Запускаем навык "Электронный почтальон".
  2. Просим "Проверить список контактов",
  3. Называем получателя списка и подтверждаем отправку.
  4. В телеграм получателя придет сообщение от бота с именами и chat id (здесь пригодится и свой ранее добавленный chat id).


Удаление контактов

Вы всегда можете удалить любой контакт из списка или очистить все контакты сразу. 

Для удаления одного контакта:

  1. Попросите "Удалить контакт",
  2. Назовите имя контакта, который нужно удалить
  3. Подтвердите действие.

Чтобы очистить весь список, просто попросите "Удалить все" - и список контактов на умной колонке будет очищен.


Запуск навыка

Для удобства вызова навыка создайте сценарии Умного дома Яндекс:

  1. Запускаем приложение Яндекс;
  2. Через меню выбираем пункт "Устройства" -> "Управление устройствами" -> "+" -> "Сценарий";
  3. Добавить название сценария (например, "Сообщение <Имя>");
  4. Задать выполнение команды на колонке "Попроси электронного почтальона отправить сообщение <Имя>".

Script example new.jpg


Рекомендации по использованию

Имена контактов

Внутри навыка используется справочник имен, что позволяет распознавать разные произношения одного имени, в т.ч. и уменьшительно-ласкательные формы, например, Таня, Танечка и Танюша будет распознано и сохранено одинаково - как Татьяна. 
Внимание: это работает только внутри навыка, т.е. после его вызова! 

Яндекс считает варианты имени разными именами, поэтому при вызове навыка с указанием имени получателя всегда следует использовать полную форму (либо добавлять каждую форму имени, что нецелесообразно).

Пример: если в навыке при сохранении контакта назвать имя получателя сообщений Таня, то в список контактов будет записано имя Татьяна. При следующем обращении внутри навыка можно использовать любую форму имени, например Танечка, Танюша или Таня будет распознано как Татьяна.

Но если вызвать навык с командой "Попроси электронного почтальона отправить сообщение Тане" навык сообщит, что не знает имени Таня и предложит его сохранить.

Возможное решение - это указание своих обращений в вызове сценария, а в команде вызова указывать имя контакта. Можно добавить несколько активационных фраз в сценарий отправки сообщений одному контакту Татьяна по фразам:

  • Напиши маме;
  • Напиши сестре;
  • Отправь сообщение подруге, итд.

и установить команду умной колонке "Попроси электронного почтальона отправить сообщение Татьяне".

Если всё же хотите сохранить контакт не по имени, рекомендую в дальнейшем использовать именно это обращение, избегая уменьшительно-ласкательных форм и других изменений слова.


Получение сообщений из Telegram

Алиса пока не умеет сама начинать диалог, поэтому отправка ответных сообщений боту не имеет смысла, и озвучены на колонке они не будут. 

Для отправки текста на колонку можно написать сообщение официальному боту Алисы @alice_speaker_bot, или использовать более продвинутые варианты от Node-RED до Home Assistant.


Если у вас несколько умных колонок

Сейчас все контакты хранятся в базе данных с привязкой к user id, который зависит от устройства, на котором запущен навык. 

Это значит, что на каждой умной колонке, в каждой копии браузера и на каждом смартфоне будет свой собственный список контактов, и их нужно добавлять заново на каждом устройстве. С другой стороны, это даёт свободу (в детской комнате прописать свои контакты, включая родителей, в других - свои).


Как узнать отправителя сообщения

Сейчас авторизация в навыке не предусмотрена, поэтому автоматически подписывать каждое отправленное сообщение возможности нет. 

Если вы сообщили свой chat id нескольким владельцам умных колонок, то для того, чтобы узнать от кого именно сообщение, отправителю нужно добавить своё имя в текст сообщения, либо отправить свою "подпись" отдельным сообщением.

Обратная связь

Если у вас остались вопросы по использованию или появились предложения по доработке, добро пожаловать в телеграм-группу "Электронный почтальон (обсуждение)".

Источник — https://wiki.yaboard.com/index.php?title=Алиса_отправляет_сообщения_в_Telegram&oldid=7942 // MOD ext links // End MOD