日別アーカイブ: 2022年10月3日

LINE-BOTで遊んでみた

先日あった、技術書店13で購入した「HANDS-on LINEBOT」に従う形ではあるんだけど、一通りのLINE-BOTを作る工程を学んだ

HANDS-on LINEBOT
https://techbookfest.org/product/3EUnJ5WbexvCDyMgSJS1qb?productVariantID=1bFbTUsxUPrDGXzGCQQNUF

BOTというと、LINEだけでなくTwitterやSlackなど、様々なところで昔からあるんだけど、恥ずかしながらこれまで作ったことはなかったんですよね。

興味自体はあったといえばあったんだけど、あくまでなんとなくであって、特にそれを使って何かをしたいかな?とも思わなかったというのが理由ではあります。

じゃ、今回なにかそういう新しいきっかけがあったのか?と言われると、特にはないんだけど、LINEの公式アカウントだったりミニアプリは結構面白いかな、と思っているんですよね。
iOSなりAndroidなりにアプリを提供しようとすると、AppleやGoogleに対して審査を通す必要が出てきてしまいますし、何より手間がかかる。
そこをLINEに乗っかることが出来るのであれば、結構楽にいいコミュニケーションチャネルを構築できるのでは?と前々から思っていました。

そういう事をしようと考えると、LINE-BOTは抑えておきたい内容です

学んだこと

当然のようにLINE-BOTの本なので、LINEメッセージの受け答えや、メッセージの種類。それぞれの表現などに関して学ぶことが出来たのは言うまでもないですが、他にもいくつか収穫はあったかな、と思います。

AWSサービス(Lambda+DynamoDB)とその開発の仕方

今回の最終形は、バックエンドをAWSのLambdaとDynamoDBで構築するというもの。
ただ、開発としてはローカルで行っていきます。

Lambdaに関してはnodeで動かすわけですが、DynamoDBに関してはDockerで提供されているものを使う形でした

amazon/dynamodb-local
https://hub.docker.com/r/amazon/dynamodb-local/

aaronshaf/dynamodb-admin
https://hub.docker.com/r/aaronshaf/dynamodb-admin

こんなのがあったんですね~。
クラウドネイティブなサービスを開発するうえで、ローカルでの開発をどうするのか?は正直わかっていませんでしたが、こういうものを利用することで、ローカルとプロダクションを同じように出来るんだな、と。

さらに、Serverless用の環境構築ツールとしてServerless Frameworkを使っていました

Serverless framework
https://www.serverless.com/framework

正直これに関しては、例えば AWS であれば Cloud Formation だったり、CDK ( Cloud Development Kit ) を使うのに比べてのメリットってなんだろう?がそこまでよくわかっていません。
マルチクラウド環境で使える・・・?でも定義に思いっきりAWSとか描いたりしているもんなぁ。。。と。

CDKとの比較で考えると、YAMLかコードか?というところが大きい気もする。
ただ、このあたりのCaIは私は経験値が少なすぎます。
積極的に、こういう場合はどうなるんだろう?をやっていくべきなんでしょうね

Express実装例

もう一つは、それなりに対応が可能なLINE-BOTの実装例としてのサンプルコードですね。
今回の実装はExpressを使っているので、あくまでその一つのサンプルにはなりますが。

そもそもの話として、LINEで出来るのは基本的にはメッセージのやり取りではあるので、今回の構成はそれほど大きく変えることなく使い回せるのでは?と思います。

もちろん、今回の実装例をもとに、別のフレームワークなどで実装してみて練習するというのもいいな、と思いました。

LINE-BOT関係でいうと、次はこのあたりを使って見ると、よりいろいろなサービスを使う形ができて面白そうだ

試験日まで毎日励ますサーバーレスLINE Botを作ろう(マネジメントコンソール編)
https://blog.usize-tech.com/encourages-serverless-linebot/

手元で動くと面白いんですよね

もちろん、何かしらのチュートリアルみたいなものをやって、それをブラウザで見るというのは一つの経験ではあるんだけど、LINEのような普段使っているプラットフォームで、自分が組んだプログラムが応答を返してくれるというのは、素直に面白いと思うのです。

先日、友人から子供に対してレゴのプログラミング教室か、Unityのプログラミング教室とか、そういうところに通わせようかと思っているんだけど、どう?って聞かれたのです。

その時には、何がしたいのか次第だよな・・・とか、実際にオフラインで教わることが出来るのであればレゴとかがいいけど、オンラインであれば物理的な部品が絡んでくるレゴはやめたほうがいいんじゃない?と返したのですが、こういう、リアクションが返ってくるようなプログラムから、プログラミングの世界に入っていくのも結構ありなんだろうな、と思ってしまいました。