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 Works Bot入門
Search
マグロ隊長kinTV
December 06, 2024
Technology
0
91
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
React19.2のuseEffectEventを追う
maguroalternative
0
210
UDDのススメ - 拡張版 -
maguroalternative
1
890
遊戯王GX 丸藤兄弟から学ぶ成長
maguroalternative
1
85
UDDのすすめ
maguroalternative
0
1.1k
めぐろLT#21 今年一番の仕事の成果
maguroalternative
0
100
DiscordBotをPythonからGoへリプレイスした話
maguroalternative
1
190
Golangのデータベーステストフィクスチャ作成
maguroalternative
0
360
DiscordとLINEをPython+FastAPI+Dockerで連携させる
maguroalternative
0
420
就活体験記
maguroalternative
0
160
Other Decks in Technology
See All in Technology
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
320
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
320
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
270
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
Wasmのエコシステムを使った ツール作成方法
askua
0
170
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
640
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
240
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
3
510
フレームワークを意識させないワークショップづくり
keigosuda
0
180
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing Hiroshima 2025 Edition
tomzoh
0
140
[Keynote] What do you need to know about DevEx in 2025
salaboy
0
170
コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜
kworkdev
PRO
1
1.1k
Featured
See All Featured
Writing Fast Ruby
sferik
629
62k
Being A Developer After 40
akosma
91
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
The Cult of Friendly URLs
andyhume
79
6.6k
How STYLIGHT went responsive
nonsquared
100
5.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Music & Morning Musume
bryan
46
6.8k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
What's in a price? How to price your products and services
michaelherold
246
12k
Scaling GitHub
holman
463
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になれてる人はトークン発行さえできれば使いやすいかも。