Начало работы с LINE Bot API и LINE Beacons

Краткое руководство по технологии LINE

Вчера я был на дне разработчика в LINE. Я успел только на несколько презентаций, но 2 вещи, которые, казалось, были в центре внимания мероприятия, были:

  • API-интерфейс LINE для ботов
  • SDK для ботов

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

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

Встать и бежать

Создание бота

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

После регистрации вы попадете в менеджер LINE@. Не стесняйтесь устанавливать здесь приветственные сообщения своей учетной записи, затем перейдите к настройкам учетной записи, затем к настройкам бота и включите веб-перехватчик.

Если у вас есть маяк, зайдите в настройки LINE Beacon и зарегистрируйте его там же.

В верхней части страницы бота, прямо под статусом, находится ссылка, которая ведет на страницу разработчика, где вы можете найти токены доступа ваших ботов и URL-адрес веб-перехватчика.

мой первый бот

Для тестирования я скопировал пример Go echo-bot из репозитория LINE на github и продолжил его.

При первой попытке я подготовил дроплет Digitalocean и использовал его для развертывания своего кода, просто чтобы узнать, что SSL применяется. Итак, я пошел в CloudFlare и включил гибкий SSL для своего домена, все проверил, а затем установил его как URL-адрес обратного вызова. После множества попыток и поиска в японских блогах я обнаружил, что, несмотря на то, что кнопка «Подтвердить» отправляет push правильно, сертификат SSL cloudflares не разрешен.

Итак, перефразируя:

Вам нужен очень распространенный SSL-сертификат. CloudFlare не работает и давайте зашифруем, по-видимому, ни то, ни другое, судя по тому, что я читал в блогах. Я еще не пробовал.

Я никоим образом не собирался покупать SSL-сертификат только для того, чтобы играть с ботом LINE. Итак, к Героку! Heroku использует сертификаты DigiCert, которые принимаются.

$ d@davebook> git init .                                                                 
Initialized empty Git repository in /Users/d/go/src/github.com/dvcrn/origami-line-bot/.git/
$ d@davebook> heroku create                                                    
Creating app... done, ⬢ stormy-inlet-57807
https://stormy-inlet-57807.herokuapp.com/ | https://git.heroku.com/stormy-inlet-57807.git
$ d@davebook> heroku rename something-not-taken
Renaming stormy-inlet-57807 to go-line-bot-test... done
Git remote heroku updated
 ▸    Don't forget to update git remotes for all other local checkouts of the app.
$ d@davebook> git add .                                                            
$ d@davebook> git commit -m 'init'           
$ d@davebook> git push heroku master

И работает в итоге?

🎉

Включение магии маяка

API Doc немного скуден, но этого достаточно, чтобы заставить его работать. Все, что нам нужно сделать, это добавить поддержку нового типа сообщения beacon (который уже включен в SDK), прослушать его и что-то сделать, когда мы его получим:

if event.Type == linebot.EventTypeBeacon {
	if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage("Hello! You just triggered my beacon!")).Do(); err != nil {
		log.Print(err)
	}
}

Включение маяка ааааа…

Подведение итогов

Я думаю, это действительно здорово, что мост между аппаратным и программным обеспечением становится все меньше и меньше. Маяки уже есть, и сделать их еще более доступными — это здорово! LINE — отличный способ начать работу с ним.

Я собираюсь спрятать свою где-нибудь в офисе и предложить людям добавить учетную запись LINE@, чтобы повеселиться в следующие дни.

Но, пожалуйста, если это читает кто-то из LINE: не усложняйте разработку. Разрешите HTTP для режима разработки и включите SSL, как только он будет запущен. Уже достаточно раздражает отправлять код после каждого изменения на сервер, чтобы посмотреть, как он работает. 😄

Также Let’s Encrypt и CloudFlare. SSL очень важен — я согласен. Наличие более простых доступных параметров SSL является обязательным, особенно для разработки.