Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LINE Works Bot入門
Search
マグロ隊長kinTV
December 06, 2024
Technology
0
96
LINE Works Bot入門
メリークリスマス!若手エンジニアふんわりLT Night!の資料です。
https://wakate-funwari-study.connpass.com/event/333619/
マグロ隊長kinTV
December 06, 2024
Tweet
Share
More Decks by マグロ隊長kinTV
See All by マグロ隊長kinTV
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
0
200
React19.2のuseEffectEventを追う
maguroalternative
2
770
UDDのススメ - 拡張版 -
maguroalternative
1
1.1k
遊戯王GX 丸藤兄弟から学ぶ成長
maguroalternative
1
93
UDDのすすめ
maguroalternative
0
1.2k
めぐろLT#21 今年一番の仕事の成果
maguroalternative
0
110
DiscordBotをPythonからGoへリプレイスした話
maguroalternative
1
190
Golangのデータベーステストフィクスチャ作成
maguroalternative
0
370
DiscordとLINEをPython+FastAPI+Dockerで連携させる
maguroalternative
0
430
Other Decks in Technology
See All in Technology
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
430
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
1
600
「え?!それ今ではHTMLだけでできるの!?」驚きの進化を遂げたモダンHTML
riyaamemiya
0
130
学術的根拠から読み解くNotebookLMの音声活用法
shukob
1
510
レガシーシステム刷新における TypeSpec スキーマ駆動開発のすゝめ
tsukuha
4
870
DGX SparkでローカルLLMをLangChainで動かした話
ruzia
1
150
私のRails開発環境
yahonda
0
110
Digitization部 紹介資料
sansan33
PRO
1
6k
AI時代のインシデント対応 〜時代を切り抜ける、組織アーキテクチャ〜
jacopen
4
170
MAP-7thplaceSolution
yukichi0403
2
200
AI 時代のデータ戦略
na0
6
1.8k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.7k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Statistics for Hackers
jakevdp
799
230k
Speed Design
sergeychernyshev
33
1.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Practical Orchestrator
shlominoach
190
11k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Why Our Code Smells
bkeepers
PRO
340
57k
Scaling GitHub
holman
464
140k
Transcript
LINE Works Bot入門 2024/12/6 メリークリスマス!若手エンジニアふんわり LT Night! マグロ
自己紹介 名前:マグロ/佐々木陽貴(sasaki haruki) 所属:株式会社くふうカンパニー (24卒サーバーサイド) X(旧Twitter):@sigumataityouda GitHub:@maguro-alternative コメント:isucon間近でドキドキ
皆さん突然ですが
メリークリスマス!!!
プレゼントもらいましたか? 僕はこんなプレゼントが...
LINE Notify終了
LINE Notifyとは? • LINEに通知を送るだけのサービス。 (画像はLINE Notify公式のもの)
LINE Notifyとは? • Messaging APIよりも送れる件数が多く、重宝されていた。 ◦ Messaging APIは月200件、LINE Notifyは1時間に1000件。
LINE Notifyとは? • 個人で作ってた Discord→LINEの連携で重宝してた ためショックが大きい。
代替え探し • Discordは❌ ◦ 利用者の多くは Discordの通知はメンションだけにしたいと言う理由で利用。 • LINE Messaging APIも❌
◦ 月200件の制約がきつく、代替が効かない。 • LINE front-end framework(LIFF)も❌ ◦ 通知としての利用は利用規約で禁止されている。 ▪ そういった挙動は見つけ次第 Banされる。
LINE Worksへ • LINEのビジネス用チャットツール。 • LINEと別物だが、LINEアカウントがあれば利用可能。 • 個人利用も可能。 • グループ内であればAPIに制限なし。
これだ!!!!!!!!!!!!!!!!!!!!
LINE Works Bot 入門 (とりあえず送受信)
APIの流れ • 参照:https://developers.worksmobile.com/jp/docs/api
APIの流れ • アクセストークンの発行は OAuth2.0の方針に従っている。 ◦ Botを仮想管理者として扱うためらしい。
APIの流れ • 有効期限があるため、無効になったら再発行をしなければならない。 ◦ アクセストークンの有効期限は 24時間、リフレッシュトークンの有効期限は 90日。 ◦ LINE NotifyやMessaging
APIのトークンは期限が無かったので、ここが大きな違いかも。 •
APIの流れ • 認可はJWTで行う。
APIの流れ とりあえずJWT発行してトークンを取得してみる。
APIの流れ 無事発行出来たっぽい。 (アクセストークンは有効期限が切れているので隠してません。 )
APIの流れ • 発行したトークンでBotを操作する。
APIの流れ 「{Reply text}」というメッセージを送ってみる。
APIの流れ 無事出来たっぽい。 チャット画面
APIの流れ 次の日試したら無事失敗したっぽい。 (アクセストークンの有効期限が切れたため ) 送信用のコンソール
APIの流れ というわけでリフレッシュトークンを使って再発行もしてみ る。
APIの流れ 発行出来てそう。 (こちらもトークンの有効期限が切れているので隠しません。 )
メッセージ受信の流れ • 参考:https://developers.worksmobile.com/jp/docs/bot-callback
メッセージ受信の流れ • サーバー側でメッセージを受け取る。 ◦ この辺はMessaging APIと同じ。
メッセージ受信の流れ • 今回はこの署名検証で受け取れるか試す。
メッセージ受信の流れ • リクエストヘッダーの X-WORKS-Signature に含まれる署名を検証 ◦ Bot Secret を秘密鍵として利用し、メッセージサーバーから送られたリクエストボディを HMAC-SHA256
アルゴリズムでエンコード。 ◦ 上記をBase64 エンコード。 ◦ これをX-WORKS-Signaturetと比較。 サーバー側 署名検証
メッセージ受信の流れ いけてそう 送受信おっけい
まとめ • LINE Works Botは仮想管理者。 ◦ トークンには有効期限があるので、再発行の準備はすること。 • その他の使い勝手はMessaging APIに結構似ている。
◦ Messaging APIになれてる人はトークン発行さえできれば使いやすいかも。