Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
LINE Works Bot入門 2024/12/6 メリークリスマス!若手エンジニアふんわり LT Night! マグロ
Slide 2
Slide 2 text
自己紹介 名前:マグロ/佐々木陽貴(sasaki haruki) 所属:株式会社くふうカンパニー (24卒サーバーサイド) X(旧Twitter):@sigumataityouda GitHub:@maguro-alternative コメント:isucon間近でドキドキ
Slide 3
Slide 3 text
皆さん突然ですが
Slide 4
Slide 4 text
メリークリスマス!!!
Slide 5
Slide 5 text
プレゼントもらいましたか? 僕はこんなプレゼントが...
Slide 6
Slide 6 text
LINE Notify終了
Slide 7
Slide 7 text
LINE Notifyとは? ● LINEに通知を送るだけのサービス。 (画像はLINE Notify公式のもの)
Slide 8
Slide 8 text
LINE Notifyとは? ● Messaging APIよりも送れる件数が多く、重宝されていた。 ○ Messaging APIは月200件、LINE Notifyは1時間に1000件。
Slide 9
Slide 9 text
LINE Notifyとは? ● 個人で作ってた Discord→LINEの連携で重宝してた ためショックが大きい。
Slide 10
Slide 10 text
代替え探し ● Discordは❌ ○ 利用者の多くは Discordの通知はメンションだけにしたいと言う理由で利用。 ● LINE Messaging APIも❌ ○ 月200件の制約がきつく、代替が効かない。 ● LINE front-end framework(LIFF)も❌ ○ 通知としての利用は利用規約で禁止されている。 ■ そういった挙動は見つけ次第 Banされる。
Slide 11
Slide 11 text
LINE Worksへ ● LINEのビジネス用チャットツール。 ● LINEと別物だが、LINEアカウントがあれば利用可能。 ● 個人利用も可能。 ● グループ内であればAPIに制限なし。 これだ!!!!!!!!!!!!!!!!!!!!
Slide 12
Slide 12 text
LINE Works Bot 入門 (とりあえず送受信)
Slide 13
Slide 13 text
APIの流れ ● 参照:https://developers.worksmobile.com/jp/docs/api
Slide 14
Slide 14 text
APIの流れ ● アクセストークンの発行は OAuth2.0の方針に従っている。 ○ Botを仮想管理者として扱うためらしい。
Slide 15
Slide 15 text
APIの流れ ● 有効期限があるため、無効になったら再発行をしなければならない。 ○ アクセストークンの有効期限は 24時間、リフレッシュトークンの有効期限は 90日。 ○ LINE NotifyやMessaging APIのトークンは期限が無かったので、ここが大きな違いかも。 ●
Slide 16
Slide 16 text
APIの流れ ● 認可はJWTで行う。
Slide 17
Slide 17 text
APIの流れ とりあえずJWT発行してトークンを取得してみる。
Slide 18
Slide 18 text
APIの流れ 無事発行出来たっぽい。 (アクセストークンは有効期限が切れているので隠してません。 )
Slide 19
Slide 19 text
APIの流れ ● 発行したトークンでBotを操作する。
Slide 20
Slide 20 text
APIの流れ 「{Reply text}」というメッセージを送ってみる。
Slide 21
Slide 21 text
APIの流れ 無事出来たっぽい。 チャット画面
Slide 22
Slide 22 text
APIの流れ 次の日試したら無事失敗したっぽい。 (アクセストークンの有効期限が切れたため ) 送信用のコンソール
Slide 23
Slide 23 text
APIの流れ というわけでリフレッシュトークンを使って再発行もしてみ る。
Slide 24
Slide 24 text
APIの流れ 発行出来てそう。 (こちらもトークンの有効期限が切れているので隠しません。 )
Slide 25
Slide 25 text
メッセージ受信の流れ ● 参考:https://developers.worksmobile.com/jp/docs/bot-callback
Slide 26
Slide 26 text
メッセージ受信の流れ ● サーバー側でメッセージを受け取る。 ○ この辺はMessaging APIと同じ。
Slide 27
Slide 27 text
メッセージ受信の流れ ● 今回はこの署名検証で受け取れるか試す。
Slide 28
Slide 28 text
メッセージ受信の流れ ● リクエストヘッダーの X-WORKS-Signature に含まれる署名を検証 ○ Bot Secret を秘密鍵として利用し、メッセージサーバーから送られたリクエストボディを HMAC-SHA256 アルゴリズムでエンコード。 ○ 上記をBase64 エンコード。 ○ これをX-WORKS-Signaturetと比較。 サーバー側 署名検証
Slide 29
Slide 29 text
メッセージ受信の流れ いけてそう 送受信おっけい
Slide 30
Slide 30 text
まとめ ● LINE Works Botは仮想管理者。 ○ トークンには有効期限があるので、再発行の準備はすること。 ● その他の使い勝手はMessaging APIに結構似ている。 ○ Messaging APIになれてる人はトークン発行さえできれば使いやすいかも。