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

О своем боте для 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 довольно просто.

Боты – это виртуальные собеседники, которые сегодня присутствуют во многих мессенджерах. Skype не исключение. В последних версиях программы также появились эти полезные и уникальные приложения, каждое из которых обладает собственным «характером». Боты полезны не только для общения. С их помощью можно искать нужную информацию, играть в мини-игры, заводить новых друзей и т.д. Чтобы разговаривать с ботом в Скайпе, достаточно просто нажать на выбранного персонажа и начать писать ему.

Что такое боты в Скайпе

Боты для Skype – это совсем не новинка. Подобные программы появились еще в более ранних мессенджерах и компьютерных играх, чтобы составить компанию в виртуальных баталиях. Эти приложения имитируют поведение живого человека в виртуальном пространстве. Первые боты мало напоминали человеческое общение, однако со временем они стали приносить очевидную пользу, и сегодня каждый человек может создать личного бота под заказ. Чаще всего такие программы отвечают на звонки, являются виртуальными справочниками, приглашают людей в группы и сообщества.

Зачем нужны боты в Skype

Скайп-боты, как и другие подобные программы, созданы для справки и развлечения пользователей. С ними можно познакомиться, завязать разговор, сыграть в онлайн-игру, спросить прогноз погоды или последние новости. Популярные боты в Skype пока работают только в некоторых странах – США, Австралия, Великобритания, Канада, Ирландия, Индия, Новая Зеландия и Сингапур. Большинство программ-ботов – англоязычные, хотя уже в ближайшем будущем могут появиться и аналоги на русском. Должны отметить, что боты могут работать только в последних версиях Скайпа для Windows, Android и MacOS.

Как можно добавить ботов в Скайп? Сделать это несложно – достаточно в разделе «Контакты» найти вкладку «Боты» и выбрать понравившегося персонажа. В браузерной версии нужно открыть вкладку «Обзор ботов». После этого достаточно выбрать пункт «Начать» или «Добавить бота», и можно приступать к общению. Если бот не понравится или надоест, его в любое время можно удалить или заблокировать.

Популярные боты в Скайпе

Вот список наиболее популярных Скайп-ботов:

  • ОРПО Rammas – интересный и умный собеседник, способных общаться на английском и арабском языке.
  • vertical.consulta – англоязычный бот для медицинских и других консультаций.
  • Davó – англоязычный бот-справочник.
  • В OKPAY БОТ – бот по вопросам платежной системы Скайпа.
  • Allai – официальный Скайп-бот Великобритании.
  • Едимыч Интернет-гипермаркет – англоязычный бот гипермаркета «Едимыч».

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

Простите меня пожалуйста, но я опять про ботов. Понимаю, что инфополе забито под завязку, но тут реально полезная инфа 100%! Мы вчера всем чатиком тестили, вот это была феерия

Вобщем, рассказываю. Есть боты, с которыми надо открыть отдельное диалоговое окно и задать ему вопрос или выбрать команду, которую он должен выполнить. Такие боты называются чат‑ботами. А есть боты, которых не надо добавлять в список контактов, и разговаривать с ними не надо, достаточно упомянуть его в сообщении и он выполнит свою функцию. Так вот, мы тестили три таких бота - по поиску картинок, по поиску гифок и по поиску видео. Подробнее про каждого из них:

@bing - бот, который ищет картинки по запросу. Если ввести @bing в поле ввода сообщения, то вы увидите рядом надпись «search images», то есть «искать изображения». Все что вам надо сделать - это написать слово или фразу для поиска тут же в поле ввода. Затем, в зависимости от скорости интернета, дождаться пока бот подгрузит картинки по запросу и выбрать ту, которая отправится сообщением в чат или диалог. Попробуйте!

@gif работает точно по такому же принципу как и бинг, только ищет гифки

@imdb ищет фильмы, присылает по запросу описание фильма с картинкой, ссылкой на трейлер и ссылкой для просмотра «легальной» версии (то есть не рутрекер совсем). Очень полезен когда кто‑то спрашивает «что посмотреть?» а вы ему не просто название, но и дискрипшн и трейлер с постером в одном сообщении)

Тестирование таких ботов‑помощников навело на мысли о том, каких еще ботов нам не хватает? Ребята выдвинули смелые предположения, что было бы здорово запилить бота, который присылает пуш‑уведомления по ключевым словам. Настроил бота на упоминание в чате своего имени или компании, и замьютил все чаты, получая уведомления только когда обсуждают то, что важно для тебя.

От себя добавлю, что мне очень хочется такого же бота как @bing, только чтобы выдавал по запросу ссылку из яндекса. А то приходится идти в браузер, копировать линк и вставлять в сообщение. Часто ошибаемся, когда пишем названия сайтов от руки, а так был бы бот‑гугл или бот‑яндекс и он за нас находил бы нужные сайты также, как находит картинки и гифки. Я знаю, что есть , но сейчас говорю именно о ботах‑помощниках.

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

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

О запуске ботов в 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. Записывайте видеосообщения для передачи контактам