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
59
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
UDDのすすめ
maguroalternative
0
890
めぐろLT#21 今年一番の仕事の成果
maguroalternative
0
76
DiscordBotをPythonからGoへリプレイスした話
maguroalternative
1
110
Golangのデータベーステストフィクスチャ作成
maguroalternative
0
320
DiscordとLINEをPython+FastAPI+Dockerで連携させる
maguroalternative
0
370
就活体験記
maguroalternative
0
140
LINEBotCourse.pdf
maguroalternative
0
230
カプコンのカンファレンスいった話
maguroalternative
0
220
22年度新歓LT
maguroalternative
0
100
Other Decks in Technology
See All in Technology
3D生成AIのための画像生成
kosukeito
2
580
Gateway H2 モジュールで スマートホーム入門
minoruinachi
0
120
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
580
Perl歴約10年のエンジニアがフルスタックTypeScriptに出会ってみた
papix
1
260
MySQL Indexes and Histograms – How they really speed up your queries
lefred
0
140
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
790
Twelve-Factor-Appから学ぶECS設計プラクティス/ECS practice for Twelve-Factor-App
ozawa
3
160
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
570
企業が押さえるべきMCPの未来
takaakikakei
0
260
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
160
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
190
MCPを理解する
yudai00
12
9k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
780
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.4k
A designer walks into a library…
pauljervisheath
205
24k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Documentation Writing (for coders)
carmenintech
70
4.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
590
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になれてる人はトークン発行さえできれば使いやすいかも。