Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LINEのおうむ返しbotを徹夜で作ろうとしてギリギリ間に合ったと思ったらやっぱり間に合ってな...
Search
Yuto Takamune
December 04, 2021
Programming
0
200
LINEのおうむ返しbotを徹夜で作ろうとしてギリギリ間に合ったと思ったらやっぱり間に合ってなかった話
Yuto Takamune
December 04, 2021
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
1
350
RustのLINEBot SDKを自作した話
shinbunbun_
0
2.1k
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
4.3k
NixOSでもご自宅k8sがしたい!
shinbunbun_
2
4.3k
カーネルレベルでTwitterを禁止しよう
shinbunbun_
0
280
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
590
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
210
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
2k
IEEE802.1X認証を導入してみた
shinbunbun_
0
300
Other Decks in Programming
See All in Programming
TestingOsaka6_Ozono
o3
0
270
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
240
Vibe codingでおすすめの言語と開発手法
uyuki234
0
170
愛される翻訳の秘訣
kishikawakatsumi
3
370
AIエージェントの設計で注意するべきポイント6選
har1101
6
3.1k
Python札幌 LT資料
t3tra
7
1.1k
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
250
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
140
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
730
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
480
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
4
35k
Rails Girls Zürich Keynote
gr2m
95
14k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
41
Color Theory Basics | Prateek | Gurzu
gurzu
0
170
Documentation Writing (for coders)
carmenintech
77
5.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A better future with KSS
kneath
240
18k
The Spectacular Lies of Maps
axbom
PRO
1
430
Discover your Explorer Soul
emna__ayadi
2
1k
Skip the Path - Find Your Career Trail
mkilby
0
42
Transcript
LINEのおうむ返しbotを徹夜で作ろうとして 失敗したギリギリ間に合ったと思ったらやっ ぱり間に合ってなかった話 会津大学 学部一年 しんぶんぶん
自己紹介 - 会津大学学部一年生 - 人間 - 普段はNuxt.jsとかNode.jsとかGoとか - SGG(学生団体)の運営 -
興味分野はアイデンティティ管理・認証系 - チキング先輩と一緒に卒業したい https://shinbunbun.info/ @shinbunbun_
深刻なネタ不足 - 昨日まで期末試験だったのでネタを考えてる時間がなかった - とりあえず徹夜で何か作ろうと思い、LINEのおうむ返しbotに挑戦 してみた - が、大量のバグが発生して失敗した🥺 - と思ったが、LTの順番が遅かったのでギリギリ間に合った(?)
- と思ったけど間に合ってなかった
技術構成 - openssl, socket.hなどのライブラリを使用し、C言語でソケット通信を実 装 - ちょうど授業でC言語を勉強したので... - サーバはAWSのLightsailにデプロイ -
証明書はLet’s Encrypt ※Webhookサーバはhttps対応じゃないといけないという制約がある
最初につまづいた点 - そもそもCでサーバ書いたことない - しかも、TLS対応のサーバを作ってるサンプルがかなり少ない - 色々調べながら、最初は自己署名証明書でとりあえずサーバを 立ててみた
サーバの用意で普通に手間取る - 普段サーバレスで開発しているので、そもそもサーバを立てるの に手間取った - Let’s Encryptの使い方とか普通に覚えてなかった🥺 - なぜか443ポートが開けられなかった
Content-Lengthつけ忘れて3時間くらいハマった - 途中でリクエストが止まってしまって何もエラーが出なかったの で、全く原因がわからなかった - 通りすがりの真っ黒い先輩が指摘してくれた - ありがとうありがとう...
未定義動作踏みすぎ - 主に変数の初期化し忘れ
やっと動いたかと思いきや... - なぜかサーバ立ち上げて1発目のリクエストしか通らない問題が 発生 - グローバル変数とかスコープをミスってせいで、前のリクエストのヘッ ダーがそのまま残ってた - その後もSSL_readで謎のdelayが発生してて、1リクエストごとに 20秒くらい待たないと返信が返って来ない問題が発生
三度目の正直はなかった - 前述2つの問題が解決して一見完成したか のように思えたが、何件かメッセージを送る と返信が来なくなるという問題が発生 - どうやら前のメッセージのreplyTokenとメッ セージが変数に残ってるっぽい - が、原因はわからず未解決
眠すぎ - 昨日の夜から完徹で作ってたので眠すぎて死にかけた - 徹夜よくない
結局どこまで出来たの?
- ⭕TLS対応のサーバを立てる - ⭕Webhookを受け取る - ⭕JSONをパースしてメッセージの中身を取り出す - ⭕リプライAPIを叩く - 🔺リプライに成功する
あと1時間あれば... どこまで出来たの?
今後の展望 - とりあえずバグは全てとりたい - プロトコルやC言語自体への理解が薄いせいでだいぶ苦しんだの で、その辺を勉強したい - おうむ返しだけじゃなくて他の機能も色々実装したい
次回: CのLINEBot SDK作ってみた