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

Алиса отправляет сообщения в Telegram: различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
 
(не показано 15 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{metadesc|{{PAGENAME}} | Вступительный абзац или расширенное описание статьи }}
{{metadesc|{{PAGENAME}} | Навык Алисы для обмена сообщениями с телеграм }}
__NOEDITSECTION__
__NOEDITSECTION__
__TOC__




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




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


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


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




Чтобы всё заработало нужно выполнить следующие действия:<br>
== Быстрый старт ==
1) в Телеграмм получателя добавить бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"], запустить его и узнать у него chat id телеграмм;<br>
2) на умной колонке дать команду "Алиса, запусти навык "Электронный почтальон", после запуска навыка попросить отправить сообщение и на вопрос "Кому?" - назвать имя, под которым получатель будет сохранен в списке контактов на колонке. Затем продиктовать его chat id телеграмм и подтвердить сохранение.<br>
3) создать сценарий в [https://wiki.yaboard.com/s/dj квазаре], на фразу "отправь сообщение <Имя получателя>" задать выполнение команды на колонке "Попроси электронного почтальона отправить сообщение <Имя получателя>".<br>
Ниже описано подробнее как это работает и нюансы использования и настройки навыка.




=== Как это работает ===
Сообщения  будет доставлять связанный с навыком бот, но для этого он должен знать id (уникальный номер) чата (лички) с получателем сообщения. Выполним несколько простых действий:
# В Telegram-аккаунте получателя добавим бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"], запустим его и узнаем у него нужный chat id.
# Дадим умной колонке команду '''"Алиса, запусти навык "Электронный почтальон"'''. После запуска навыка:
#* просим его отправить сообщение;
#* на вопрос "Кому?" называем имя, под которым хотим сохранить получателя;
#* диктуем его ранее полученный chat id
#* подтверждаем сохранение.
# Создадим сценарий в "[[Веб-интерфейс "квазар" - что это? | квазаре]]" (приложение Яндекс),
#* на фразу "Отправь сообщение <Имя получателя>" выбираем выполнение команды на колонке,
#* пишем "Попроси электронного почтальона отправить сообщение <Имя получателя>".
Ниже описано подробнее как это работает и нюансы использования и настройки навыка.


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


Для первоначальной настройки навыка рекомендую настроить получение сообщений в собственный телеграмм. Это пригодится в дальнейшем для контроля списка сохраненных контактов.


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


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


Поскольку бот не может начать общение первым, всем будущим получателям надо самостоятельно найти бота в Telegram и начать с ним диалог.
# Вводим название бота - AliceSendMessageBot - в поиск tg. Должно отобразиться название "Электронный почтальон (бот)";
# Открываем чат с этим ботом, нажимаем "Старт" ("Запустить").
Бот в сообщении пришлёт наш chat id телеграм, который понадобится для сохранения контакта в навыке на умной колонке.


Сообщения в телеграмм будут приходить от бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"] Т.к. бот в телеграмм не может начать первым общение с пользователем, то для получения сообщений необходимо самостоятельно добавить бота и начать диалог с ним.<br>
Если сообщения нужно отправлять в группу, то добавляем бота в эту группу и используем команду <b>/mychatid</b> для получения chat id группы.  
Добавляем бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"] и нажимаем "Запустить". Бот в сообщении пришлёт наш chat id телеграмм, который понадобится для сохранения контакта в навыке на умной колонке. Если нужно отправлять сообщения в группу телеграмм, то добавляем бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"] в нужную группу и используем команду <b>/mychatid</b> для получения chat id группы. Обратите внимание, что обычно chat id групп в телеграмм начинается со знака "-". При внесении контакта в навыке нужно будет подтвердить его наличие перед цифрами chat id.
Обратите внимание: chat id для групп обычно начинается со знака "-", и при внесении такого контакта в навык нужно подтвердить минуса перед цифрами chat id.


<gallery>
<gallery>
Файл:Start.JPG|Запускаем бота
Файл:Start.JPG | Запускаем бота
Файл:First message.JPG |Получаем chat id при запуске бота
Файл:First message.JPG | Получаем chat id при запуске бота в личке
Файл:My Chat ID.JPG |Получаем chat id по команде <b>/mychatid</b>
Файл:My Chat ID.JPG | Получаем chat id по команде <b>/mychatid</b> в группе
</gallery>
</gallery>




==== Работа со списком контактов ====
== Работа со списком контактов ==
 
 
Для удобства отправки контакты сохраняются под удобными именами вместо сложных id. Вы называете имя, а навык сам находит нужную личку или группу.
 
 
=== Добавление нового контакта ===
 
 
Добавление нового получателя в список контактов во время отправки нового сообщения происходит автоматически.
 
# Запускаем навык "Электронный почтальон" и на вопрос "Что вы хотите сделать?" отвечаем "Отправить сообщение".
# На вопрос "Кому?" - называем имя получателя. Если такого получателя ещё нет - будет предложено его сохранить.
# Если имя получателя не найдено, будет запрошен chat id
# Если проверка на корректное распознавание продиктованных данных прошла - подтверждаем сохранение в списке контактов на колонке.
 
 
=== Проверка списка контактов ===
 
 
Список сохраненных контактов можно отправить в телеграм одному из сохраненных получателей сообщений на умной колонке. Например, себе или членам семьи.
 
# Запускаем навык "Электронный почтальон".
# Просим "Проверить список контактов",
# Называем получателя списка и подтверждаем отправку.
# В телеграм получателя придет сообщение от бота с именами и chat id (здесь пригодится и свой ранее добавленный chat id).
 
 
=== Удаление контактов ===
 
 
Вы всегда можете удалить любой контакт из списка или очистить все контакты сразу.
 
Для удаления одного контакта:
# Попросите "Удалить контакт",
# Назовите имя контакта, который нужно удалить
# Подтвердите действие.
 
Чтобы очистить весь список, просто попросите "Удалить все" - и список контактов на умной колонке будет очищен.




Для удобства отправки сообщений по имени получателя на умной колонке сохраняются Ваши контакты: для chat id телеграмм получателя сообщений Вы называете имя, под которым он будет записан в контактах и в дальнейшем вызываться по этому имени.
== Запуск навыка ==




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


[[Файл:Script example new.jpg|350px]]


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


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


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


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


Список сохраненных контактов можно отправить в телеграмм одному из сохраненных получателей сообщений на умной колонке.Для проверки сохраненных контактов на колонке нужно попросить "Проверить список контактов", после этого назвать получателя сообщения со списком. После подтверждения отправки в телеграмм получателя придет сообщение от  бота [//t.me/AliceSendMessageBot "Электронный почтальон (бот)"] с указанием имени получателя и его chat id телеграмм. Для удобства использования данной возможности рекомендую добавить в список контактов собственный chat id телеграмм.


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


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


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


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


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


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




Для вызова навыка настоятельно рекомендую использовать собственные сценарии в [https://wiki.yaboard.com/s/dj квазаре], например на фразу "сообщение <Имя получателя>" задать выполнение команды на колонке "Попроси электронного почтальона отправить сообщение <Имя получателя>".
=== Получение сообщений из Telegram ===
{{#spoiler:[[Файл:Script example.jpg|Пример сценария для запуска навыка Электронный почтальон]]}}




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


Для отправки текста на колонку можно написать сообщение официальному боту Алисы  [//t.me/alice_speaker_bot @alice_speaker_bot], или использовать более продвинутые варианты от [[Таймеры, несколько команд устройству, TTS (Node-RED) | Node-RED]] до [//wiki.yaboard.com/?search=home+assistant Home Assistant].


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


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


Рекомендую использовать имена для сохранения пользователя в списке контактов. Это связано с тем, что внутри навыка используется справочник имен, что позволяет распознавать разные произношения одного имени, в т.ч. и уменьшительно-ласкательные формы, например, Таня, Танечка и Танюша будет распознано и сохранено одинаково - как Татьяна. Внимание: это работает только внутри навыка, т.е. после его вызова! Яндекс пока не умеет распознавать разные варианты одного имени, поэтому при вызове навыка с указанием имени получателя всегда следует использовать полную форму имени, либо добавлять в список контактов каждую форму имени, что нецелесообразно. Пример: если в навыке при сохранении контакта назвать имя получателя сообщений Таня, то в список контактов будет записано имя Татьяна. При следующем обращении внутри навыка можно использовать любую форму имени, например Танечка, Танюша или Таня будет распознано как Татьяна.Но если вызвать навык с командой "Попроси электронного почтальона отправить сообщение Тане" навык сообщит, что не знает имени Таня и предложит его сохранить.<br>
Возможное решение - это указание своих обращений в вызове сценария а в команде вызова указывать имя контакта, например, можно сделать несколько сценариев для отправки сообщений одному контакту Татьяна по фразам:<br>
- напиши маме;<br>
- напиши сестре;<br>
- отправь сообщение подруге и т.п.<br>
и для каждой фразы установить одинаковую команду умной колонке "Попроси электронного почтальона отправить сообщение Татьяне".
Если вы всё-таки хотите сохранить в контактах обращению к получателю не по имени, то рекомендую в дальнейшем при обращении к нему использовать тоже самое обращение, под которым его сохранили, избегая уменьшительно-ласкательных форм и т.п.


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


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




На сегодняшний день Алиса в типовом функционале не умеет сама начинать диалог с пользователем, поэтому отправка ответных сообщений телеграмм боту Электронный почтальон не имеет смысла и озвучены на колонке они не будут. В будущем возможно будет реализована возможность озвучивания сообщений по просьбе пользователя, например, по команде "Проверь мои сообщения", если это будет востребовано.
=== Как узнать отправителя сообщения ===




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


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


Сейчас все контакты хранятся в базе данных с привязкой к user id, который зависит от устройства, на котором запускается навык. Таким образом, на каждой умной колонке, в браузере и на смартфоне будет свой собственный список контактов и нужно добавлять контакты на каждом устройстве.
== Обратная связь ==




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




Если остались вопросы по использованию навыка или появились предложения по его доработке, добро пожаловать в телеграмм группу  [//t.me/AliceSendMessage "Электронный почтальон (обсуждение)"]
[[Category:Диалоги]]

Текущая версия от 19:02, 7 октября 2023

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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