Что значит добавить нового бота в скайпе. Как создать своего бота для Skype. Что не написано в документации. Зачем нужны боты в Skype

О запуске ботов в Skype - самое время изучить как это работает. Под катом - небольшое описание возможных проблем. Кому не терпится посмотреть результат, вот он - MetricsBot .

Bot Framework vs. Skype Bot API

Для начала стоит понять, что есть Bot Framework , который позволяет создавать ботов для многих мессенджеров, в т.ч. и для Skype, а есть Skype Bot API , который позволяет создавать ботов именно для Skype. У каждого своя документация, свой каталог ботов (?) и своя регистрация ботов. Вроде очевидно, что это разные вещи, но я потратил довольно много времени пытаясь разобраться в документации Bot Framework"a и в регистрации бота в нем, когда ожидал, что создаю бота без фрейворка. Далее речь будет идти именно про Skype Bot API, Bot Framework нам не нужен, регистрировать там тоже ничего не надо. Есть Skype SDK для Node.js и для . Их я тоже не использовал, т.к. писал бота на Python.

Полезные ссылки

Для начала небольшой набор полезных ссылок (все ссылки - на английском языке):
  • Свои приложения (тут необходимо создать новое приложение и получить app id и client secret)
  • Управление своими ботами (здесь необходимо создать нового бота, указав app id полученный ранее)
В принципе, из документации понятно как работает бот и как он взаимодействует со 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 достаточно удобным средством для общения с родными, друзьями или коллегами. Но вынужден использовать его в тех случаях, когда адресат на второй стороне не предлагает альтернативные варианты - хотя бы тот же WhatsApp .

Чтобы разнообразить общение с помощью Skype, воспользуйтесь набором фишек, которые надо знать каждому .

1. Добавьте контакты телефонной книги в список друзей

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

Теперь увидите в перечне контактов Skype все записи телефонной книги, которые пользуются сервисом.

И эта возможность появилась только в последних обновлениях мобильного приложения для iOS.

2. Отправляйте местоположение, чтобы сэкономить время

Эту фишку мы с друзьями активно используем через WhatsApp, когда пытаемся найти друг друга в родном городе или в поездке. И она есть и в Skype.

Просто нажмите на соответствующую кнопку над клавиатурой, скорректируйте местоположение и подтвердите выбор. Профит.

3. Отметьте избранных собеседников из общего перечня

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

Таким образом сэкономите время на их поиск в будущем - избранные записи всегда отображаются в верхней части телефонной книги Skype.

4. Просматривайте время отправления сообщений свайпом

Проведите справа налево в меню общения с кем-либо и увидите время отправления каждого сообщения в диалоге.

5. Используйте скрытые смайлы из перечня лучших ниже

Чтобы отправить скрытый смайлик, нужно прописать его текстом согласно представленным ниже таблицам.

Слева - изображение, в центре - название, справа - код (скобки тоже часть кода ).

Пожалуйста.

6. Передавайте контакты Skype собеседникам в пару тапов

Для этого у мобильного приложения сервиса предусмотрена специальная кнопка, которая доступна во время переписки.

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

7. Устанавливайте статусы в Skype по личным потребностям

Используйте статусы сервиса с умом :

  • В сети - пользователь готов к общению
  • Не в сети - Skype выключен или нет сети
  • Нет на месте - готов прочитать сообщения, когда вернется
  • Не беспокоить - пользователь занят и не получит уведомление о вашем сообщении
  • Невидимый - для всех этот статус будет выглядеть как не в сети

Это упростит жизнь.

8. Попробуйте общение с ботами, чтобы оценить их лично

Актуальный список ботов Skype доступен на официальном сайте сервиса - вот ссылка . Чтобы начать общение с роботом, его достаточно просто добавить в список друзей.

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

Жаль, большинство ботов общаются только на английском языке. Но вы все-таки сможете найти какого-то интересного именно для себя.

9. Создавайте групповые видеозвонки вместе с друзьями

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

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

10. Записывайте видеосообщения для передачи контактам

Вслед за некоторыми другими мессенджерами и социальными сервисами, в Скайпе решили также «легализировать» ботов. И в конце марта 2016 года разработчики анонсировали данную функцию в своем приложении. Для чего же предназначается бот Скайп , для чего он, собственно говоря, может быть полезен самому обычному пользователю и как можно добавить себе какого-нибудь бота?

Боты в виртуальном пространстве

На самом желе, боты – это не изобретение современного виртуального пространства. Бот представляет собой компьютерную программу, которая призвана всевозможными способами «притворяться» обычным человеком в Сети. И первые боты, как это ни странно, возникли… в компьютерных играх. Именно с развитием сетевых шутеров – таких, как DOOM, Quake и им подобны, — пользователями стали писаться так называемые боты – программные роботы, которые могли составить компанию в сетевых баталиях. Ведь далеко не все игроки тогда вообще имели доступ к компьютерной сети, а поиграть все-таки хотелось…

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

Поначалу они лишь раздражали своей бестолковостью. Со временем, однако, программисты сообразили, что ботов можно поставить и на полезную службу человечеству. И теперь большое количество ботов пишется под заказ и на платной основе. К примеру, чтобы отвечать на вопросы клиентов, выдавать справку по ключевым словам в мессенджере…

Назначение ботов в Скайпе

Программный робот Skype может так или иначе имитировать поведение в Сети живого человека. С момента анонсирования появились самые разные Скайп-боты. Одни просто развлекают пользователя, играя с ним с различные игры, другие могут искать полезную информацию в Сети, третьи могут и пообщаться…

Словом, выбор действительно велик. Впрочем, большая часть ботов пока еще функционирует на английском языке, часть доступна только на территории Соединенных Штатов. Однако ограничений становится все меньше и меньше.

Чтобы убедиться в безопасности бота, нужно посмотреть его профиль перед добавлением. Здесь должна содержаться фраза «Skype Certified». Кроме того, аватарка бота всегда имеет шестиугольную форму, тогда как у всех остальных пользователей она круглая. К тому же, рядом с аватаркой одобренного бота имеется «галочка» на сером фоне.

Как же можно добавить себе того или иного бота? Все довольно просто. Для этого:

  1. Нужно скачать Скайп на своем устройстве;
  2. Дальнейшие действия зависят от того, на какой операционной системе работает Скайп. Например, на Андроиде имеется специальный пункт в меню «Контакты» . Он так и называется – «Боты» . В iOS значок Боты имеется во вкладке «Недавние» . В десктопной версии Skype Windows имеется специальный значок на боковой панели инструментов. В браузерной же версии Скайпа нужно выбрать «Обзор ботов» ;
  3. Далее останется лишь нажать на «Добавить бота» или «Начать» .

Список сертифицированных и одобренных ботов можно найти на странице проекта: https://support.skype.com/ru/faq/FA34655/dostupnye-boty-skype.

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

Остается добавить, что боты доступны только в самых последних релизных версиях Skype. Так что имеет смысл обновить программу из официальных источников.

Зная, Скайп боты – что это, можно значительно расширить свои возможности по использованию этой многосторонней программы для общения и звонков.

О своем боте для Telegram, который умеет данные из Google Analytics показывать. А тут Microsoft объявила о запуске ботов в Skype - самое время изучить как это работает. Под катом - небольшое описание возможных проблем. Кому не терпится посмотреть результат, вот он - MetricsBot .

Bot Framework vs. Skype Bot API

Для начала стоит понять, что есть Bot Framework , который позволяет создавать ботов для многих мессенджеров, в т.ч. и для Skype, а есть Skype Bot API , который позволяет создавать ботов именно для Skype. У каждого своя документация, свой каталог ботов (?) и своя регистрация ботов. Вроде очевидно, что это разные вещи, но я потратил довольно много времени пытаясь разобраться в документации Bot Framework"a и в регистрации бота в нем, когда ожидал, что создаю бота без фрейворка. Далее речь будет идти именно про Skype Bot API, Bot Framework нам не нужен, регистрировать там тоже ничего не надо. Есть Skype SDK для Node.js и для . Их я тоже не использовал, т.к. писал бота на Python.

Полезные ссылки

Для начала небольшой набор полезных ссылок (все ссылки - на английском языке):

  • Свои приложения (тут необходимо создать новое приложение и получить app id и client secret)
  • Управление своими ботами (здесь необходимо создать нового бота, указав app id полученный ранее)

В принципе, из документации понятно как работает бот и как он взаимодействует со 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 довольно просто.