LINE DEVELOPER DAY 2016に今年も今年も参加してきたのでそのメモです。
  LINE Bot Live Coding
 サービス開発1室 海津研様
  
   - BOT API Trialでは、テキスト、画像、動画、音声、位置情報、スタンプ、リッチメッセージなどを送れるものだった
  - 問題として,,, 
- リッチメッセージが難しい
  - 返事を返すのにユーザにメッセージを送信してもらわないといけない 
  - グループへの参加ができなかった
  - APIがわかりにくい
  
  - 開発者の意見をもとに Messaging API 2.0をリリースしました
  
新機能
 - MessageAPIを刷新し、テンプレートメッセージをおくれたり、webhookを受け取れたり、グループへの参加ができるようになった
  
API
 - Rply IDというのが付与されたwebhookがBot Applicationに届きそれに対して返信ができる
  - ReplyIDを使えばどこからメッセージがきたかを気にすることなく返信ができる
  - Trialでは、APIにコールする際に、ヘッダーや、パラメータにマジックナンバーなど付与するものがたくさんあったが、今回は僅かなヘッダーと、見やすいパラメータを付与するだけになった
  
New Message Type
  - typeにbuttonsを指定し、actionsに押した時の挙動を定義していく 
- type: uriは指定したURIをブラウザで開く
  
  
Confirm Template
 - type: confirmを指定するとOKとCancelに対してアクションを設定できる
  
Caroucel Template
 live Coding
 curlでのdemo
 accesstokenを用いて
 
 curlでAPIになげると
 
 無事BOTから通知が来ました!
 
  
 Carouselの実装デモ
 Carouselのメイン実装部分
 
 
 pushメソッドの実装
 
 tokenなどの設定部分
 
  
 実行してみるとCarouselが表示されるのがわかる
 
 
 リクエストは以下のような形
 
 
  
  
 webhook
 - BOTに対するイベントはiosやandroidからLINE Serverに送られて、webhookを使ってBot Applicationに届きます
  - イベントについて 
- trialの機能にさらにgroupの参加や離脱、ビーコン、postbackといったイベントを受け取れるようになった
  
  - postbackアクションはボタンなどのアクションに指定できるが、サーバにpostbackイベントが届くと、アクションにパラメータを付与できる 
- 例えばCarouselで何月何日のCarouselをクリックしたかなどの詳細パラメータを取得できる
  
  
Live Coding
  
 webhookを使った実装
 webhookのurlを用います
 
  
 コントローラの実装
 
  
 channel secretの値を用います。
 
 
  
 lineからのシグナルからはX-Line-SigunatureをチェックしてLINEからであることを保証して下さい。
 
  
 Signatureがおかしかったら弾かれるさまを確認。
 
 イベント毎の実装部分
 
  
 今回はオウム返しの実装をしてみます。来たメッセージに対して!!!をつけるだけのもの。
 
 
  
 ビルドしてデプロイします。
 
 
  
 オウム返ししてくれました。
 
  
 より詳細なCarouselのdemo
 複数のCarouselを実装
 
 
  
 Carouselのアクションに対してのPostBackの実装
 
 
  
  
 リマインダーをセットしたら数秒後にメッセージを通知する実装
 
  
 天気を聞くと
 
 Carouselで答えてくれます。
 
 リマインダを登録してみます。
 
 登録されて…
 
 数秒たつとリマインダがきました
 
  
 リッチメニュー
 リッチメニューは管理画面からいじります。
 
 このようにシャッとひらけます
 
  
 先程のCarouselの実装を確認しました。
 
 SDK
 - Java, golang, Ruby, PHP, Perl5を用意しています
  
QA
 - グループに参加した場合でもリッチメニューは使えるか? 
  - グループに参加するユーザ情報は取得できるか? 
  - midを取得してユーザの管理ができると思うが、グループに参加したときはグループIDしかとれないのか? 
- はい。グループに発信されたメッセージに対してアクションすることしかできません
  
  - jsでのSDK予定はあるか? 
  - reminderは期限などはあるか? 
  
 実際のBOTの実装の流れを見てなんとなく理解できたような気がしました!
 とりあえずcurlで叩くところから始めてみたく存じます。
   
View Comments
Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://www.binance.com/id/register?ref=OMM3XK51
I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Reading your article helped me a lot and I agree with you. But I still have some doubts, can you clarify for me? I'll keep an eye out for your answers.