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
190
LINEのおうむ返しbotを徹夜で作ろうとしてギリギリ間に合ったと思ったらやっぱり間に合ってなかった話
Yuto Takamune
December 04, 2021
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
0
310
RustのLINEBot SDKを自作した話
shinbunbun_
0
1.8k
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
3.9k
NixOSでもご自宅k8sがしたい!
shinbunbun_
2
3.8k
カーネルレベルでTwitterを禁止しよう
shinbunbun_
0
240
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
500
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
190
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
1.6k
IEEE802.1X認証を導入してみた
shinbunbun_
0
270
Other Decks in Programming
See All in Programming
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
QA x AIエコシステム段階構築作戦
osu
0
240
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
400
画像コンペでのベースラインモデルの育て方
tattaka
3
1.2k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.4k
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
21
10k
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
16
9.4k
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
110
Streamlitで実現できるようになったこと、実現してくれたこと
ayumu_yamaguchi
2
270
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
110
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Cult of Friendly URLs
andyhume
79
6.5k
BBQ
matthewcrist
89
9.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Adopting Sorbet at Scale
ufuk
77
9.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
The Invisible Side of Design
smashingmag
301
51k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Faster Mobile Websites
deanohume
308
31k
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作ってみた