SlideShare a Scribd company logo
Azure Functionsで
Line Botを作ってみた
2017年3月15日
第6回 城東.NET勉強会
まずは自己紹介
・名前
木下 裕之
・HN:Kingkino
・SNS
Twitter @kingkinoko FaceBookやってます。GitとLinkedInもちょこっと・・・。
・Azure暦:6年
・Azure Function暦:7ヶ月
・MCSE : Cloud Platform and Infrastructure 2017
(MCP 70-532 : 70-533 : 70-534)
※この資料は2017年3月15日時点での情報を元に作成しています。
Azure FunctionsでLine Botを作った経緯
ネットで検索してもAzure FunctionsとC#でLine Bot作ったという情報があまり出てきません。
検索して出てくる目ぼしいサイトは下記のサイトくらいです。
・ Azure Functions + Node.jsのサンプル
http://qiita.com/yorifuji/items/7f892564958cf464a812
http://qiita.com/maaya8585/items/caf5c79610ed75b051a0
・ WebApps + C#のサンプル (BOT API Trial)(ピエールさんのブログ)
http://pierre3.hatenablog.com/entry/2016/04/13/234505
・ Azure Functions + C#のサンプル (BOT API Trial)( guitarrapc_techさんのブログ)
http://tech.guitarrapc.com/entry/2016/04/14/135520
・ WebApps + C#のサンプル MSの中の人のサンプル、※現時点で一番利用しやすそう
https://blogs.msdn.microsoft.com/kenakamu/2017/01/10/linebotwithcsharp/
その他にもpythonやJAVA、Ruby等で作ってみたという情報はあるのですが最新のMessage APIとAzure Functions + C#
で作成したという情報がなかったので開発に着手しました。ちなみにLine Message APIは昨年の9月にリリースされています。
Azure FunctionsでどんなLine Botを作ったのか
Azure Functions + C#でLine Botを作ってみました。
Bot名は「大変よくできました!」で無条件で誉め続けてくれるBotです。
年を重ねる度に褒めてもらう機会が減り褒める事が多くなってくると思います。
誰しも褒めて貰える事は嬉しいのでそんな人向けをコンセプトに作ってみました。
暫くの間、公開しているのでよければ友達使ってみてください。
作っておいてなんですがやればやるほど空しくなるので是非お試しあれ。
Lineの友達登録からQRコードで登録を選択して右記
のQRコードを読み取ってください。
※なお、このBotは予告なく削除しますので予めご承
知おきください。
Azure Functionsで動くLine Botの仕組み
Azure FunctionsはHttpTriggerCsharpテンプレートを利用して作成します。
LineのMessaging APIにAzure FunctionsのWebhook URLを登録して連携します。
今回利用したMessage APIはWebhook(Lineからの通知)とReply Message(Functionsからの返信)です。
Azure Functionsの
Webhook URLを登録する
HTTP Trigger Csharp
Reply Message
HTTP trigger
HTTP output
Azure Storage
②Line Reply Message APIに
リクエスト
①Webhookによるトリガー
AzureStorageに配置した
データを読み込む
③HTTPtriggerのレスポンスを返却
苦労した点
ネットで検索しても情報があまり出てこない系の開発だったので情報が少なくて難儀しました。
Message APIのリファレンスはあるのですが何故かC#のサンプルがないという悲しい現実もあります。GOですらあるのに。
あと、Azure Functions + C#は本当に開発しづらいです。VS2015でもインテリセンスが効かない部分が多いのとMessage
APIの連携がWebHookのためローカルの開発環境だとIFが通らなかったり、仕方ないのでAzure PortalのFunctions Editor
を利用するがメモ帳で開発するのと同じレベルで実行時にしかエラーが判断できなかったりと苦労しました。
C#のサンプルがないリファレンス Functionsの開発画面
Azure FunctionsでLine Botを作ってみた感想
「ハマる事もあるけれど、私Azure Functionsが大好きです。」
と、言えるようになりたい・・・。
最初はそこそこはまりましたけど、一回作り方を覚えてしまえば大して苦労せずに作れると思います。
Cognitive Serviceと組み合わせると面白いBotが作れるんじゃないかと画策もしています。
とりあえずもう少しまともなやり取りができるようにLUISあたりを使ってみたら面白いんじゃないかな。
もちろん、「りんな」は目指しません。
無料アカウントで作成しているのでいろいろと制限はありますが有料で利用できるカルーセル等のリッチUIや認証
機能を使って最終的な野望である「モスバーガーのチャットBot注文」が作れるといいなぁなんて思ってます。
最後に・・・・
参考:Azure Functionsの構築方法とLine message APIの開設と設定方法とサンプルソース
LINE BUSINESS CENTER
https://business.line.me/ja/services/bot
LINE BOTの作り方を世界一わかりやすく解説(1)【アカウント準備編】
http://qiita.com/yoshizaki_kkgk/items/bd4277d3943200beab26
LINE API Reference
https://devdocs.line.me/ja/
Azure Functionsの開発環境構築
http://www.buildinsider.net/pr/microsoft/azure/dictionary06
Azure Functions + C# Line Echo Bot Sample
https://github.com/kingkino/kokoni-SmapleLineEchoBot
Azure Functions + C# Line Praise Line Bot
https://github.com/kingkino/kokoni-PraiseLineBot

More Related Content

What's hot (20)

PDF
Innovation eggcloudnative
Takuro Sasaki
 
PPTX
ReactでCMSを作ったときにハマったこと
kazuki matsumura
 
PDF
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Terui Masashi
 
PPTX
本番運用で使うVisual Studio
Kazuyuki Miyake
 
PPTX
なるほどわかった!App Service on Linux
Yasuaki Matsuda
 
PPTX
Ml.NET
ru pic
 
PDF
元OracleMasterPlatinumがCloudSpanner触ってみた
Kumano Ryo
 
PDF
Infrastructure as Codeってなんだったっけ?
Terui Masashi
 
PDF
ノーコーディングでAIサービスを使ってみた話
典子 松本
 
PPTX
Face APIで開発する時に使っている7つの道具
Kazuyuki Miyake
 
PDF
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
Madoka Chiyoda
 
PDF
Google アナリティクスで SharePointの利用状況を確認する
Akihiro Ehara
 
PPTX
現実的な「WordPress on Azure App Service」 クイックスタート
Kazuyuki Miyake
 
PPTX
今更聞けないストリーム処理のあれとかこれ
Tatsuro Hisamori
 
PDF
Terraform×Rancherでマルチクラウドを一歩すすめる
Shinya Mori (@mosuke5)
 
PPTX
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
典子 松本
 
PDF
Azure Arcで「どこでも」Azureサービスを利用可能に!
Masahiko Ebisuda
 
PPTX
【2017早めの夏休み自由研究】SPAとサーバーレスについて
kazuki matsumura
 
PDF
Google App Engine for PHPとそのローカル開発環境について
Terui Masashi
 
PPTX
Azure 三つ巴チームが送るIgnite 振り返り!
Yasuaki Matsuda
 
Innovation eggcloudnative
Takuro Sasaki
 
ReactでCMSを作ったときにハマったこと
kazuki matsumura
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Terui Masashi
 
本番運用で使うVisual Studio
Kazuyuki Miyake
 
なるほどわかった!App Service on Linux
Yasuaki Matsuda
 
Ml.NET
ru pic
 
元OracleMasterPlatinumがCloudSpanner触ってみた
Kumano Ryo
 
Infrastructure as Codeってなんだったっけ?
Terui Masashi
 
ノーコーディングでAIサービスを使ってみた話
典子 松本
 
Face APIで開発する時に使っている7つの道具
Kazuyuki Miyake
 
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
Madoka Chiyoda
 
Google アナリティクスで SharePointの利用状況を確認する
Akihiro Ehara
 
現実的な「WordPress on Azure App Service」 クイックスタート
Kazuyuki Miyake
 
今更聞けないストリーム処理のあれとかこれ
Tatsuro Hisamori
 
Terraform×Rancherでマルチクラウドを一歩すすめる
Shinya Mori (@mosuke5)
 
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
典子 松本
 
Azure Arcで「どこでも」Azureサービスを利用可能に!
Masahiko Ebisuda
 
【2017早めの夏休み自由研究】SPAとサーバーレスについて
kazuki matsumura
 
Google App Engine for PHPとそのローカル開発環境について
Terui Masashi
 
Azure 三つ巴チームが送るIgnite 振り返り!
Yasuaki Matsuda
 

Similar to azure functionsでlinebotを作ってみた (20)

PPTX
Azure DevOpsで技術同人誌作成
裕之 木下
 
PPTX
azure functionsとcsx
裕之 木下
 
PPTX
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda
 
PDF
Developing multi-agents with Azure + Flowise
Jingun Jung
 
PDF
[Japan Tech summit 2017] APP 003
Microsoft Tech Summit 2017
 
PPTX
ノンプログラミングで楽したい
裕之 木下
 
PDF
Azure Functions と Serverless - 概要と企業向け Tips
Keiji Kamebuchi
 
PDF
Azure もくもく会 @ 東京 #18 LT
裕康 井上
 
PPTX
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
典子 松本
 
PPTX
build2017のazure関連情報まとめ
裕之 木下
 
PDF
Developing bots and agents with Azure + Flowise
Jingun Jung
 
PDF
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
Masahiko Ebisuda
 
PDF
Azure もくもく会@東京 #22 - Azure Functions v1.0 GA
裕康 井上
 
PPTX
Azure MLによるWeb Serviceの作り方
nishioka1
 
PDF
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
拓将 平林
 
PPTX
20150822 Application Insightsでお手軽WPアプリ監視
Takayoshi Tanaka
 
PDF
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Yuta Matsumura
 
PDF
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
 
PPTX
Whats service mesh & istio ?
cyberblack28 Ichikawa
 
PDF
15分でわかる!Azure Static Web Apps
拓将 平林
 
Azure DevOpsで技術同人誌作成
裕之 木下
 
azure functionsとcsx
裕之 木下
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda
 
Developing multi-agents with Azure + Flowise
Jingun Jung
 
[Japan Tech summit 2017] APP 003
Microsoft Tech Summit 2017
 
ノンプログラミングで楽したい
裕之 木下
 
Azure Functions と Serverless - 概要と企業向け Tips
Keiji Kamebuchi
 
Azure もくもく会 @ 東京 #18 LT
裕康 井上
 
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
典子 松本
 
build2017のazure関連情報まとめ
裕之 木下
 
Developing bots and agents with Azure + Flowise
Jingun Jung
 
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
Masahiko Ebisuda
 
Azure もくもく会@東京 #22 - Azure Functions v1.0 GA
裕康 井上
 
Azure MLによるWeb Serviceの作り方
nishioka1
 
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
拓将 平林
 
20150822 Application Insightsでお手軽WPアプリ監視
Takayoshi Tanaka
 
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Yuta Matsumura
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
 
Whats service mesh & istio ?
cyberblack28 Ichikawa
 
15分でわかる!Azure Static Web Apps
拓将 平林
 
Ad

More from 裕之 木下 (12)

PPTX
AzureStorageのオブジェクトレプリケートを試してみた
裕之 木下
 
PPTX
Client Side Balzorでツールを作ってみた
裕之 木下
 
PPTX
第15回JSSUG「Azure SQL Database 超入門」
裕之 木下
 
PPTX
Azure Functionsを業務利用する時の勘所
裕之 木下
 
PPTX
クラウドで動画配信
裕之 木下
 
PPTX
「Azure durable functions」の概要
裕之 木下
 
PPTX
Xamrin de live2d
裕之 木下
 
PPTX
Azure vs aws比較 エンコード ace用
裕之 木下
 
PPTX
azure botserviceをもっと身近に
裕之 木下
 
PPTX
azure障害は忘れたころにやってくる
裕之 木下
 
PPTX
明日から役立つazure①
裕之 木下
 
PPTX
昨今のpaas事情
裕之 木下
 
AzureStorageのオブジェクトレプリケートを試してみた
裕之 木下
 
Client Side Balzorでツールを作ってみた
裕之 木下
 
第15回JSSUG「Azure SQL Database 超入門」
裕之 木下
 
Azure Functionsを業務利用する時の勘所
裕之 木下
 
クラウドで動画配信
裕之 木下
 
「Azure durable functions」の概要
裕之 木下
 
Xamrin de live2d
裕之 木下
 
Azure vs aws比較 エンコード ace用
裕之 木下
 
azure botserviceをもっと身近に
裕之 木下
 
azure障害は忘れたころにやってくる
裕之 木下
 
明日から役立つazure①
裕之 木下
 
昨今のpaas事情
裕之 木下
 
Ad

azure functionsでlinebotを作ってみた

  • 2. まずは自己紹介 ・名前 木下 裕之 ・HN:Kingkino ・SNS Twitter @kingkinoko FaceBookやってます。GitとLinkedInもちょこっと・・・。 ・Azure暦:6年 ・Azure Function暦:7ヶ月 ・MCSE : Cloud Platform and Infrastructure 2017 (MCP 70-532 : 70-533 : 70-534) ※この資料は2017年3月15日時点での情報を元に作成しています。
  • 3. Azure FunctionsでLine Botを作った経緯 ネットで検索してもAzure FunctionsとC#でLine Bot作ったという情報があまり出てきません。 検索して出てくる目ぼしいサイトは下記のサイトくらいです。 ・ Azure Functions + Node.jsのサンプル http://qiita.com/yorifuji/items/7f892564958cf464a812 http://qiita.com/maaya8585/items/caf5c79610ed75b051a0 ・ WebApps + C#のサンプル (BOT API Trial)(ピエールさんのブログ) http://pierre3.hatenablog.com/entry/2016/04/13/234505 ・ Azure Functions + C#のサンプル (BOT API Trial)( guitarrapc_techさんのブログ) http://tech.guitarrapc.com/entry/2016/04/14/135520 ・ WebApps + C#のサンプル MSの中の人のサンプル、※現時点で一番利用しやすそう https://blogs.msdn.microsoft.com/kenakamu/2017/01/10/linebotwithcsharp/ その他にもpythonやJAVA、Ruby等で作ってみたという情報はあるのですが最新のMessage APIとAzure Functions + C# で作成したという情報がなかったので開発に着手しました。ちなみにLine Message APIは昨年の9月にリリースされています。
  • 4. Azure FunctionsでどんなLine Botを作ったのか Azure Functions + C#でLine Botを作ってみました。 Bot名は「大変よくできました!」で無条件で誉め続けてくれるBotです。 年を重ねる度に褒めてもらう機会が減り褒める事が多くなってくると思います。 誰しも褒めて貰える事は嬉しいのでそんな人向けをコンセプトに作ってみました。 暫くの間、公開しているのでよければ友達使ってみてください。 作っておいてなんですがやればやるほど空しくなるので是非お試しあれ。 Lineの友達登録からQRコードで登録を選択して右記 のQRコードを読み取ってください。 ※なお、このBotは予告なく削除しますので予めご承 知おきください。
  • 5. Azure Functionsで動くLine Botの仕組み Azure FunctionsはHttpTriggerCsharpテンプレートを利用して作成します。 LineのMessaging APIにAzure FunctionsのWebhook URLを登録して連携します。 今回利用したMessage APIはWebhook(Lineからの通知)とReply Message(Functionsからの返信)です。 Azure Functionsの Webhook URLを登録する HTTP Trigger Csharp Reply Message HTTP trigger HTTP output Azure Storage ②Line Reply Message APIに リクエスト ①Webhookによるトリガー AzureStorageに配置した データを読み込む ③HTTPtriggerのレスポンスを返却
  • 6. 苦労した点 ネットで検索しても情報があまり出てこない系の開発だったので情報が少なくて難儀しました。 Message APIのリファレンスはあるのですが何故かC#のサンプルがないという悲しい現実もあります。GOですらあるのに。 あと、Azure Functions + C#は本当に開発しづらいです。VS2015でもインテリセンスが効かない部分が多いのとMessage APIの連携がWebHookのためローカルの開発環境だとIFが通らなかったり、仕方ないのでAzure PortalのFunctions Editor を利用するがメモ帳で開発するのと同じレベルで実行時にしかエラーが判断できなかったりと苦労しました。 C#のサンプルがないリファレンス Functionsの開発画面
  • 7. Azure FunctionsでLine Botを作ってみた感想 「ハマる事もあるけれど、私Azure Functionsが大好きです。」 と、言えるようになりたい・・・。 最初はそこそこはまりましたけど、一回作り方を覚えてしまえば大して苦労せずに作れると思います。 Cognitive Serviceと組み合わせると面白いBotが作れるんじゃないかと画策もしています。 とりあえずもう少しまともなやり取りができるようにLUISあたりを使ってみたら面白いんじゃないかな。 もちろん、「りんな」は目指しません。 無料アカウントで作成しているのでいろいろと制限はありますが有料で利用できるカルーセル等のリッチUIや認証 機能を使って最終的な野望である「モスバーガーのチャットBot注文」が作れるといいなぁなんて思ってます。 最後に・・・・
  • 8. 参考:Azure Functionsの構築方法とLine message APIの開設と設定方法とサンプルソース LINE BUSINESS CENTER https://business.line.me/ja/services/bot LINE BOTの作り方を世界一わかりやすく解説(1)【アカウント準備編】 http://qiita.com/yoshizaki_kkgk/items/bd4277d3943200beab26 LINE API Reference https://devdocs.line.me/ja/ Azure Functionsの開発環境構築 http://www.buildinsider.net/pr/microsoft/azure/dictionary06 Azure Functions + C# Line Echo Bot Sample https://github.com/kingkino/kokoni-SmapleLineEchoBot Azure Functions + C# Line Praise Line Bot https://github.com/kingkino/kokoni-PraiseLineBot