Перейти к содержанию

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

Материал из Wiki yaboard

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

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

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

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

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

Сообщения будет доставлять связанный с навыком бот, но для этого он должен знать 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. Задать выполнение команды на колонке "Попроси электронного почтальона отправить сообщение <Имя>".

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

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

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

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

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

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

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

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

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

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

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

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

В будущем (если это будет востребовано - пишите автору) предусмотрена возможность озвучивания сообщений по просьбе пользователя. Например, по команде "Проверь мои сообщения".

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

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

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

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

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