SlideShare ist ein Scribd-Unternehmen logo
1 von 8
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

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

Ähnlich wie azure functionsでlinebotを作ってみた

Ähnlich wie azure functionsでlinebotを作ってみた (20)

Azure DevOpsで技術同人誌作成
Azure DevOpsで技術同人誌作成Azure DevOpsで技術同人誌作成
Azure DevOpsで技術同人誌作成
 
azure functionsとcsx
azure functionsとcsxazure functionsとcsx
azure functionsとcsx
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
[Japan Tech summit 2017] APP 003
[Japan Tech summit 2017]  APP 003[Japan Tech summit 2017]  APP 003
[Japan Tech summit 2017] APP 003
 
ノンプログラミングで楽したい
ノンプログラミングで楽したいノンプログラミングで楽したい
ノンプログラミングで楽したい
 
Azure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け TipsAzure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け Tips
 
Azure もくもく会 @ 東京 #18 LT
Azure もくもく会 @ 東京 #18 LTAzure もくもく会 @ 東京 #18 LT
Azure もくもく会 @ 東京 #18 LT
 
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
 
build2017のazure関連情報まとめ
build2017のazure関連情報まとめbuild2017のazure関連情報まとめ
build2017のazure関連情報まとめ
 
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
 
Azure もくもく会@東京 #22 - Azure Functions v1.0 GA
Azure もくもく会@東京 #22 -  Azure Functions v1.0 GAAzure もくもく会@東京 #22 -  Azure Functions v1.0 GA
Azure もくもく会@東京 #22 - Azure Functions v1.0 GA
 
Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方
 
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
 
20150822 Application Insightsでお手軽WPアプリ監視
20150822 Application Insightsでお手軽WPアプリ監視20150822 Application Insightsでお手軽WPアプリ監視
20150822 Application Insightsでお手軽WPアプリ監視
 
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
Whats service mesh & istio ?
Whats service mesh & istio ?Whats service mesh & istio ?
Whats service mesh & istio ?
 
15分でわかる!Azure Static Web Apps
15分でわかる!Azure Static Web Apps15分でわかる!Azure Static Web Apps
15分でわかる!Azure Static Web Apps
 
「Azure durable functions」の概要
「Azure durable functions」の概要「Azure durable functions」の概要
「Azure durable functions」の概要
 
Client Side Balzorでツールを作ってみた
Client Side Balzorでツールを作ってみたClient Side Balzorでツールを作ってみた
Client Side Balzorでツールを作ってみた
 

Mehr von 裕之 木下

Mehr von 裕之 木下 (10)

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

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