Лучшие боты Skype для повышения производительности при обмене сообщениями

Автоматизация рутинных процессов в Сети – перспективное направление для деятельности флагманов рынка программного обеспечения. Деятельность разработчиков и собственников направлена на экономию временных затрат пользователей рассматриваемых проектов, оптимизацию их взаимодействия с программной реализацией. Сегодня мы поговорим о том, что такое боты в Скайпе
, рассмотрим их характерные особенности, возможности.

Боты живые?

Конечно нет. Это искусственно созданные алгоритмы, выполняющие рутинную работу за рассматриваемого пользователя. Не так давно специалисты из Microsoft добавили возможность установки таких надстроек, однако для ограниченного числа стран.

Что они могут? Хороший вопрос, на который даст ответ приведенный ниже список:

  • Взаимодействовать с текстовыми сообщениями, пользовательскими изображениями.
  • Выполнять простейшие операции в виде СМС-рассылок выбранным пользователям.
  • Структурировать поступающую информацию в зависимости от размера, расширения и содержимого.

Это далеко неполный перечень, но и он дает понять перспективность выбранного направления.

Защита от «липовых» алгоритмов

Сонмы злоумышленников решили «поживиться» за счет неразберихи на ранних этапах внедрения новой технологии. Под видом программной активности они проникают в глубины пользовательских данных участников проекта.

Как подтвердить безобидность бота? Каждая практическая реализация имеет ряд специфических особенностей:

  1. Аватарка бота выполнена в форме шестигранника.
  2. Наличие серой галочки напротив ника учетной записи.
  3. В профиле рассматриваемого объекта имеется надпись «Проверено Skype»
    .

Каталог ботов Skype

Ниже представлена небольшая подборка ботов для Скайп:

Название бота Описание бота Ссылка
Мировое время
Бот, который может рассказать вам текущее и будущее время в любой части мира. Он также может отображать карты и давать текущие погодные условия любого местоположения в мире, если он может получать информацию из Интернета. Добавить бот в Skype
Побег из леса с приведениями
Вы в ловушке глубоко в лесу с привидениями, заключенного трех злых ведьм. Побег не будет легким, монстров и существ из темноты за каждым углом притаились жаждущие уничтожить вас. Но Вы не войдет без боя! Отточить свои навыки, приобрести легендарное снаряжение, и стали свое мужество в такой ужасающий Хэллоуин бродилки! Добавить бот в Skype
Блэкджек
Я просто здесь, чтобы играть в Blackjack. Монеты зарабатываемые в игре нельзя обналичивать или обменять на реальную валюту. Добавить бот в Skype
Пасьянс
Пасьянс-самая популярная карточная игра в мире Добавить бот в Skype
Покер Бот
Бот для игры в Техасский холдем. Добавить бот в Skype
Lingio Викторина+Перевод
Играть в тест язык и перевести в тот же чат бот. — Выучить новый язык, играя забавные тесты с более чем 2000 вопросов! Попробуйте побить свой собственный высокий балл — Легко переводить слова и тексты на более чем 50 языков, с 20+ языков при воспроизведении звука. Надеемся, что вам понравится! Добавить бот в Skype
Карточные игры
Бот для игры во множество карточных игр. Добавить бот в Skype
Обобщить
Нет времени читать всю веб-страницу? Просто отправьте ссылку боту, чтобы получить обзор основных пунктов. Добавить бот в Skype
Гороскоп Бот
Гороскоп по знаку зодиака. Бот позволяет узнать, что вас ждет в ваших отношениях, дома или на работе? Астрология поможет вам, так что вы можете двигаться вперед на протяжении дня, без второй мысли. Управления ваши отношения и узнать, что может быть лучший способ реагировать на события. Добавить бот в Skype
Уно
Уно — всемирно известная карточная игра. Добавить бот в Skype
Iris
Определение возраста по фотографии. Добавить бот в Skype
Youtube MP3 Downloader
Бот позволяет скачивать mp3 с YouTube. Как это работает? 1) Отправить ссылку на видео 2) скачать mp3 Добавить бот в Skype
Бот Переводчик
Простой переводчик. Как это работает? 1) пользователь отправляет определенный текст боту 2) бот определит язык пользователя и переведет текст на английский. Добавить бот в Skype
Активный фитнес
С помощью данного бота вы сможете открывать и прокладывать новые маршруты по всему. Бег, езда на велосипеде, пешие прогулки, катание на лыжах, сноуборде и многое другое! Добавить бот в Skype
Бинг новости
Поиск в Интернете для получения последних новостей с помощью Bing. Добавить бот в Skype
Бинг музыка
Поиск в интернете, в том числе популярных сайтов, таких как YouTube, vevo видео, LyricFind, и больше-просто введите название песни и исполнителя. Добавить бот в Skype
Бинг изображения
Поиск в Интернете мемов, картинкок, наклеек, и других изображения. Добавить бот в Skype
Темпо
Крошечный синоптик, темпо нужно знать название города и он расскажет вам о погоде там. Добавить бот в Skype
Крестики-Нолики
Бот для игры в крестики-нолики. Добавить бот в Skype
Много Идей
Не знаете, что подарить своим близким? Ищите оригинальные, универсальные по тематике и полезные в обиходе подарки? «Много идей» поможет Вам в этом! Добавить бот в Skype
Emojify
Переводит любой текст в смайлики, автоматически! Добавить бот в Skype
Ascendo Translate Bot
Бот переводит с любого языка на любой язык. Добавить бот в Skype
Примечания
Здравствуйте, я Notes бот. Я здесь, чтобы быть вашим помощником и делать заметки для вас. Добавить бот в Skype
Уг
УГ УГ мама мама Добавить бот в Skype
Мой финансовый советник
Финансовые данные и расчеты в ваших руках. Добавить бот в Skype
Оптимус
Оптимус Прайм может говорить с вами Добавить бот в Skype
LinguaBot
Преподаватель иностранного языка через Skype. Добавить бот в Skype
OZON.ru
Служба поддержки OZON.ru Добавить бот в Skype
RET.TAX
Служба помощи по налоговым вычетам Добавить бот в Skype
Люси
Искусственный интеллект чат бот. Добавить бот в Skype
MetricsBot
Отображает ваши данные Google Analytics Добавить бот в Skype
Советы
Бот, который дает мудрые советы о жизни Добавить бот в Skype
TheDogBot
Собака бот поможет вам узнать неизвестные породы собак. Вам просто нужно загрузить фотографию собаки или отправить URL-адрес изображения. Попробуйте его и получайте удовольствие! Ваша Собака Бот! Добавить бот в Skype
Джули
Общайтесь с новой подругой Джули. Она любит поговорить на любые темы. Добавить бот в Skype
GottaDrinkFunction
Скажите мне, если вы пили воду. Я скажу вам, сколько воды вам осталось выпить сегодня. Добавить бот в Skype
Eve
Этот бот просто виртуальный друг, который дает случайные ответы на любые сообщения от пользователей. Добавить бот в Skype
БухаБот
Бухай, жри, пей, не о чем не жалей! Добавить бот в Skype
Hello Stranger!
Текстовый квест для Skype. Ваша цель-помочь главному герою спастись океанских глубин живой в режиме реального времени. Бот предлагает внутриигровые покупки. Добавить бот в Skype
Hello Stranger 2 game
Текстовый квест. Вы получили сообщение от неизвестной девушки Элис, которая говорит, что она похищена. Ты должен ей помочь, но как? Выберите ответы, которые вы считаете правильным и следуйте Элис на ее пути. Бот предлагает внутриигровые покупки. Добавить бот в Skype
У вас есть интересный и полезный бот? Оставляйте ссылку на него в комментариях и мы его обязательно добавим в нашу подборку!
C# , Microsoft Bot Framework , Блог , Лучшее , Статьи

Я давно хотел попробовать написать какого-нибудь простого бота, чтобы разобраться в этом процессе. Сейчас я в отпуске и у меня есть достаточно свободного времени, чтобы начать писать в своё удовольствие в этом направлении…

Я решил начать с простого бота, который может работать только с текстом. Бот будет на недавно анонсированной платформе для ботов от Microsoft (Microsoft Bot Framework
). Мне она приглянулась тем, что теоретически, один реализованный бот может работать и для Skype
и для Telegram
и для веба и еще много всяких вариантов. Чтобы не писать совсем уж бесполезное приложение, я буду делать бота-помощника для разработчика, который может выполнить такие действия как:

  • Приведение строки к верхнему регистру
  • Приведение строки к нижнему регистру
  • Получение нового Guid
  • Конвертация числа из любой системы счисления в любую
  • Перевод Base64 строки в обычный текст
  • Обычный текст в Base64 строку
  • Получить дату из строки в UNIX формате
  • Перевести дату в UNIX формат
  • Сгенерировать пароль заданной длины

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

В бот, на вход, будет поступать строка. Будем разделять команду и её параметры пробелами. Сама команда будет либо до первого пробела, либо вся строка, если пробелов нет.

Не буду описывать процесс обработки команд и того, как они исполняются, так как там всё предельно просто, да и весь написанный код я опубликую на GitHub
.

Перейдём к более интересному, а именно, к созданию самого бота. Для работы нужна Visual Studio 2015
, рекомендую установить доступные обновления. Воспользуемся готовым шаблоном для создания ботов «Bot Application template
», скачать его можно по этой ссылке aka.ms/bf-bc-vstemplate

Полученный zip архив нужно скопировать в директорию «%USERPROFILE%DocumentsVisual Studio 2015TemplatesProjectTemplatesVisual C#
» После этого, мы уже можем создавать нового бота из данного шаблона.

Сразу после создания проект имеет следующую структуру

Мы можем запустить его и проверить, что он уже умеет. Для тестирования существует отдельное приложение «Bot Framework Emulator
», сказать его можно отсюда http://download.botframework.com/botconnector/tools/emulator/publish.htm

Запустим наше приложение и эмулятор.

По умолчанию, бот умеет возвращать длину полученного сообщения, данный функционал реализован в MessagesController
:

Теперь добавлю боту ранее описанный функционал. Для этого я добавлю новый проект “DeveloperToolsPack
” который будет представлять из себя Class Library
и также добавлю проект для Unit
тестов.

Класс DeveloperTools
представляет из себя следующее:

    public class DeveloperTools      {          private Dictionary _tools;            public DeveloperTools()          {              AddTool(new ToUpper());              AddTool(new ToLower());              AddTool(new NewGuid());              AddTool(new ConvertTo());              AddTool(new FromBase64());              AddTool(new ToBase64());              AddTool(new FromUnixTime());              AddTool(new ToUnixTime());              AddTool(new Password());          }            private void AddTool(ITool tool)          {              if (_tools == null)              {                  _tools = new Dictionary();              }              if (!_tools.ContainsKey(tool.CommandName.ToLower()))              {                  _tools.Add(tool.CommandName.ToLower(), tool);              }          }            public string Run(string str)          {              if (!System.String.IsNullOrEmpty(str))              {                  str = str.Trim();                  var indexOfSpace = str.IndexOf(" ", StringComparison.Ordinal);                  string command;                  var commandText = "";                  if (indexOfSpace != -1)                  {                      command = str.Substring(0, indexOfSpace).ToLower();                      commandText = str.Substring(indexOfSpace+1, str.Length - indexOfSpace-1);                  }                  else                  {                      command = str.ToLower();                  }                  if (_tools.ContainsKey(command))                  {                      return _tools[command].Run(commandText);                  }                  else                  {                      if (command == "help")                      {                          var returnString = new StringBuilder();                          foreach (var tool in _tools)                          {                              returnString.Append(tool.Value.Description + "nr");                          }                          return returnString.ToString();                      }                        return $"Command "**{command}**" not found. See "**help**" command.";                  }              }              return "Please input a string";          }      }  

В самом боте, в «MessagesController
» обработку полученного сообщения заменим на

var developerTools = new DeveloperToolsPack.DeveloperTools();  return message.CreateReplyMessage(developerTools.Run(message.Text));  

Можно запускать и тестировать данного бота.

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

Теперь щелкаем по проекту правой кнопкой мыши и выбираем Publish

Теперь необходимо выбрать «Microsoft Azure Web Apps
»

И найти там ранее созданное приложение. После этого можно нажать кнопку «Publish
» и приложение будет опубликовано.

Теперь идем на сайт https://dev.botframework.com авторизуемся и нажимаем «Register a bot
»

Заполняем все необходимые поля

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

Теперь необходимо взять App Id и Primary app secret и вписать их в Web.config бота.

После этого бота нужно пере опубликовать с новыми ключами. Опубликованный бот можно протестировать в «Bot Framework Emulator
», не забыв указать новые App Id
и App Secret
.

Получившегося бота можно связать с многими платформами.

В том числе использовать в web.

Ссылка на исходный код: https://github.com/flash2048/SkypeBot_DeveloperTools

Несомненно, боты очень перспективное направление. Платформа от Microsoft
очень удобная и позволяет интегрироваться с другими сервисами, что, несомненно является огромным плюсом. Создаваемые боты, естественно, не ограничиваются только обработкой текста, они могут выполнять гораздо более сложные функции. В данной статье я показал, как можно сделать простого, но в тоже время полезного бота для Skype
и опубликовать его. Созданный бот, ко всему прочему, может работать на множестве других платформ, таких как Telegram
, Facebook Messenger,
GroupMe
, Slack
.

Бот в Telegram

Бот в Skype

Приятного программирования.

P.S. Код бота изменялся под новую версия Bot Framework

Некоторое время назад я рассказывал о своем боте для Telegram, который умеет данные из Google Analytics показывать. А тут Microsoft объявила о запуске ботов в Skype — самое время изучить как это работает. Под катом — небольшое описание возможных проблем. Кому не терпится посмотреть результат, вот он — MetricsBot. Для начала стоит понять, что есть Bot Framework, который позволяет создавать ботов для многих мессенджеров, в т.ч. и для Skype, а есть Skype Bot API, который позволяет создавать ботов именно для Skype. У каждого своя документация, свой каталог ботов (?) и своя регистрация ботов. Вроде очевидно, что это разные вещи, но я потратил довольно много времени пытаясь разобраться в документации Bot Framework’a и в регистрации бота в нем, когда ожидал, что создаю бота без фрейворка. Далее речь будет идти именно про Skype Bot API, Bot Framework нам не нужен, регистрировать там тоже ничего не надо. Есть Skype SDK для Node.js и для C#. Их я тоже не использовал, т.к. писал бота на Python. Для начала небольшой набор полезных ссылок (все ссылки — на английском языке): В принципе, из документации понятно как работает бот и как он взаимодействует со Skype’ом, потому эту часть описывать не буду — расскажу о сложностях. Это оказалось самой трудоемкой для меня частью. В документации говорится, что для авторизации необходимо получить токен, а затем использовать его в заголовке HTTP при каждом обращении:Authorization: Bearer oauth2-token

Однако в документации почему-то забыли указать какой scope необходимо использовать для получения токена. Правильный ответ (можно найти в коде Node.js SDK) — https://graph.microsoft.com/.default
. Но тут начинается самое интересное — если создавать URL для подтверждения пользователем (=владельцем бота), потом получать auth_code
, а потом попытаться обменять этот код на access token
, то проблема возникнет на первом же шаге — при открытии созданного URL, Microsoft ругается на неправильный scope. Правильного scope, кстати, нет в списке возможных вариантов в документации Microsoft. Я пытался указывать другой scope — openid offline_access https://graph.microsoft.com/user.read
, в этом случае мне удавалось получить token, только вот с ним взаимодействовать со Skype не удавалось. Решение оказалось неожиданным — для получения access_token, необходимо было отправить обычный POST запрос:curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=&client_secret=&grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default' 'https://login.microsoftonline.com/common/oauth2/v2.0/token'

В ответ возвращается access_token
и expires_in
(без какого-либо refresh_token
). Такого OAuth я еще не встречал. Отправка сообщений довольно проста — POST /v2/conversations/8:alice/activities HTTP/1.1
Host: apis.skype.com
Authorization: Bearer oauth2-token
{
"message": {"content" : "Hi! (wave)"}
}

Запросы отправляются на apis.skype.com. В документации забыли указать, что запросы должны уходить по https
. В тексте можно использовать html-теги. Какие точно — пока неизвестно (в документации списка нет). Есть интересные и неописанные ограничения на отправляемый текст. Например, в тексте нельзя использовать символы &
, <
и >
. Отсутствие возможности передать символ &
создает проблему при передаче ссылок. Еще одна проблема при передаче ссылок — автоматически создаваемые превью для каждой ссылки. В моем боте MetricsBot в тексте приглашения три ссылки, Skype создает три превью. Отключить это пока нельзя. После создания бота можно попробовать его опубликовать (до этого количество пользователей бота ограниченно — им может пользоваться только 100 человек). Сколько времени занимает процесс публикации — не ясно, в документации этого нет. Моего бота пока так и не опубликовали. На официальном форуме мой вопрос на эту тему обходят стороной (хотя на другие мои вопросы сотрудники Microsoft отвечают). Обратите внимание, что для публикации бота надо отключить использование бота в групповых чатах. В остальном — создание бота для Skype довольно просто.
Боты для Skype
52%
нужны, пойду делать свой

386
24.7%
нужны

184
23.1%
не нужны

172
Проголосовали 742 пользователя.
Воздержались 184 пользователя.
233

71,7k


233

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации