Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINE Messaging API メッセージ送受信とアカウント連携まわり

LINE Messaging API メッセージ送受信とアカウント連携まわり

2019/09/27 AADOJO in Alternative Camp

Mitsuzono Hiroto

September 27, 2019
Tweet

More Decks by Mitsuzono Hiroto

Other Decks in Technology

Transcript

  1. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. LINE Messaging

    API メッセージ送受信とアカウント連携まわり 株式会社オルターブース 満園 裕人
  2. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • 満園

    裕人 • 株式会社オルターブース エンジニア • 業務では主に C#(.NET Core)で Webアプリケーション開発 自己紹介
  3. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • LINE

    Messaging API • Webhook • メッセージ送信 API • アカウント連携 今日話す内容
  4. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • 「友だち追加」「メッセージ送信」のようなイベントがトリ

    ガーされると、Webhook URLにHTTPS POSTリクエストが 送信される • リクエストには「送信元の情報」や各イベントに応じた「イ ベントオブジェクト」が含まれる Webhook https://developers.line.biz/console/
  5. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • メッセージ

    • フォロー • フォロー解除 • アカウント連携 • その他 • グループ参加、退出 • ビーコン • LINE Thingsデバイス連携 • Etc… Webhookイベント種別
  6. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • Reply

    • Webhookイベントオブジェクトに含まれるトークンを使 用して返信(但しすぐ切れるのでタイミングがシビア) • Push • ユーザー、グループ、トークルームに送信 • Multicast • 配列で渡したユーザーID全てに一斉送信 • Broadcast • アカウントを友だち登録している全員に一斉送信 メッセージ送信 API
  7. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • テキスト

    • 種別とテキスト文字列のみ • スタンプ • “packageId”と”stickerId”が必要 メッセージオブジェクト https://developers.line.biz/ja/reference/messaging-api/ https://developers.line.biz/media/messaging-api/sticker_list.pdf
  8. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • 画像・動画

    • パラメータ • 置き場所のURL • サムネイル画像のURL • サイズの上限が決まっている • 音声 • パラメータ • 置き場所のURL • 長さ メッセージオブジェクト
  9. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • 位置情報

    • トーク画面に地図が表示される • イメージマップ • 画像に複数のタップ領域を設定できる。4分割など • テンプレート • ボタンやカルーセルなどが使用できる • Flex • CSS Flexible Boxによりレイアウトを自由に設定できる メッセージオブジェクト
  10. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. 1. link

    tokenを取得 2. 連携先サービスの ユーザーIDを取得 3. ノンスを生成し、 連携ページへリダイレクト 4. アカウント連携イベントを 受け、ユーザーデータ照合 アカウント連携の流れ https://developers.line.biz/ja/docs/messaging-api/linking-accounts/
  11. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • link

    tokenを取得(LINEユーザーIDが必要) • AuthorizationヘッダーにChannel Access Tokenを含め てPOST • https://api.line.me/v2/bot/user/{userId}/linkToken • トークンの有効期限は10分 link tokenを取得
  12. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • 自前Webアプリケーションの連携用ページへ遷移

    • LINEメッセージに、URIアクションを設定したテンプ レートメッセージなどを使用すると便利 • 遷移先ではログイン画面を表示 • サービスにログインしたらユーザーIDを保持 連携先サービスのユーザーIDを取得
  13. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • ノンスを生成

    • 予測が難しく一度しか使用できない文字列 • ノンスとユーザーIDを紐づけてデータストアへ保存 • ユーザーを以下エンドポイントへリダイレクト • https://access.line.me/dialog/bot/accountLink?linkT oken={link token}&nonce={nonce} ノンスを生成し、連携ページへリダイレクト
  14. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • アカウント連携のWebhookイベントが発火する

    • 成功していればLINEのアクセストークン、リフレッシュ トークンを取得しデータストアに残しておく アカウント連携イベントを受け、データ照合
  15. Copyright © 2015-2019 ALTERBOOTH inc. All Rights Reserved. • メッセージを受けるとき

    • Webhookイベント種別を判別してから展開 • メッセージを送るとき • ReplyまたはPush APIを使用する • 一斉送信の場合はMulticastかBroadcastも活用 • アカウントリンクで他のサービスと連携が可能 LINE Messaging API まとめ