Skip to content
Last updated

LINE OA Streaming Import連携

LINE Messaging公式アカウント(OA)は、顧客の会話データと行動データを収集し、分析、トリガー、マーケティング目的のパーソナライゼーションに活用できます。この連携により、LINE OAからのメッセージ/イベントデータをTreasure Dataにインポートできます。

サポートされるWebhookイベント

この連携は、LINE Messaging APIから送信されるすべてのWebhookイベントを受信します。以下が含まれます:

  • メッセージイベント(テキスト、画像、動画、音声、ファイル、位置情報、スタンプ)
  • フォローイベント(ユーザーがアカウントを友だち追加したとき)
  • アンフォローイベント(ユーザーがアカウントをブロックしたとき)
  • 参加イベント(アカウントがグループまたはルームに参加したとき)
  • 退出イベント(アカウントがグループまたはルームから退出したとき)
  • メンバー参加/退出イベント
  • ポストバックイベント
  • ビーコンイベント
  • アカウント連携イベント
  • デバイス連携/連携解除イベント

Webhookイベントの完全なリストとデータ構造については、LINE Messaging APIドキュメントを参照してください。

前提条件

  • Treasure Dataの基礎知識
  • LINE Messaging公式アカウントの基礎知識

要件と制限事項

  • 会話データの取得をサポート
  • LINE WebhookとLINE Messaging APIが有効化されている必要があります
  • Webhook URLを正しく設定する必要があります
  • データを取り込むテーブルにデータを取り込む前に、Plazmaでデータベースとテーブルを作成する必要があります
  • LINE Messaging APIでは、チャネルごとに1つのWebhook URLのみ許可されています。Webhookを必要とする複数のツールを使用したり、既存のシステム連携がある場合は、ZapierなどのWebhookイベントをTreasure Dataを含む複数の宛先に配信する中間サービスを使用する必要があります

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

TDコンソールからLINE OAをインポート

認証の作成

  1. 認証情報セットを使用して新しい認証を作成するには、以下の手順を実行します。
  2. Integrations Hubを選択します。
  3. Catalogを選択します。
  4. カタログで連携を検索し、アイコンにマウスカーソルを合わせて、Create Authenticationを選択します。

line oa streaming catalog

  1. Credentialsタブが選択されていることを確認し、連携の認証情報を入力します。

新しい認証フィールド

line oa streaming new authentication

パラメータ説明
TD API KeyTD APIキー、書き込み専用キー
Channel Secret KeyLINEチャネルシークレットキー

Sourceの作成

  1. TDコンソールを開きます。
  2. Integrations Hub > Authenticationsに移動します。
  3. 新しく作成した認証を見つけて、New Sourceを選択します。

Authentications page with New Source button

接続の作成

パラメータ説明
Data Transfer Name転送の名前を定義できます。
Authentication転送に使用される認証名。
  1. Data Transfer Nameフィールドにソース名を入力します。
  2. Nextを選択します。
  3. Create SourceページがSource Tableタブが選択された状態で表示されます。

ソーステーブルの指定

続行する前に、Plazmaでデータベースとテーブルを作成したことを確認してください。この連携では、LINE OAデータを保存するための既存のデータベースとテーブルが必要です。

  1. LINE OAデータを保存する宛先テーブルを設定します。

Create Source data settings

パラメータ説明
DatastorePlazmaが使用可能なオプションです。
Tagsオプション。タグを使用してこのソースを検索できます。
DatabaseデータをインポートするTreasure Data内のデータベースを指定します。
Raw Table生のメッセージデータを配置するデータベース内のテーブルを指定します。
Events Tableイベントデータを配置するデータベース内のテーブルを指定します。
  1. Nextを選択します。

Data Preview

インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。

  1. Next を選択します。Data Preview ページが開きます。
  2. データをプレビューする場合は、Generate Preview を選択します。
  3. データを確認します。

Data Placement

データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。

  1. Next を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。

  2. Database を選択 > Select an existing または Create New Database を選択します。

  3. オプションで、database 名を入力します。

  4. Table を選択 > Select an existing または Create New Table を選択します。

  5. オプションで、table 名を入力します。

  6. データをインポートする方法を選択します。

    • Append (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。
    • Always Replace - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
    • Replace on New Data - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
  7. Timestamp-based Partition Key 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。

  8. データストレージの Timezone を選択します。

  9. Schedule の下で、このクエリを実行するタイミングと頻度を選択できます。

一度だけ実行

  1. Off を選択します。
  2. Scheduling Timezone を選択します。
  3. Create & Run Now を選択します。

定期的に繰り返す

  1. On を選択します。
  2. Schedule を選択します。UI では、@hourly@daily@monthly、またはカスタム cron の 4 つのオプションが提供されます。
  3. Delay Transfer を選択して、実行時間の遅延を追加することもできます。
  4. Scheduling Timezone を選択します。
  5. Create & Run Now を選択します。

転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。

ソースIDのコピー

ソースID(UUID v4)は、ソース作成時に発行されます。

不正使用を防ぐため、ソースIDは権限のない者に開示しないでください。

ソース作成後、自動的にソース一覧ページに移動します。

  1. 作成したソースを検索します。
  2. 同じ行の「...」をクリックし、Copy Unique IDを選択します。

Sources listing with Copy Unique ID option

このユニークIDが、LINE Messaging APIでWebhook URLを設定する際に必要なソースIDです。

LINE Messaging APIでWebhook URLを設定

Treasure DataでLINE OAイベントを受信するには、LINE Messaging APIの設定でWebhook URLを設定する必要があります。

  1. LINE Developers Consoleにログインします。

  2. LINE公式アカウントチャネルを選択します。

  3. Messaging APIタブに移動します。

  4. Webhook settingsセクションで、Webhook URLを入力します:

    米国リージョンの場合:

    https://line-in-streaming.treasuredata.com/v1/task/{source_id}

    東京リージョンの場合:

    https://line-in-streaming.treasuredata.co.jp/v1/task/{source_id}

    {source_id}を前の手順でコピーしたソースIDに置き換えます。

  5. VerifyをクリックしてWebhook接続をテストします。

  6. Use webhookトグルを有効にします。

  7. オプションで、Webhook redeliveryを有効にして、失敗したWebhook配信を再試行できるようにします。

  8. Updateをクリックして設定を保存します。

LINE Developers Console webhook settings

Webhookを有効にする前に、Webhook URLが正しく設定され、検証されていることを確認してください。他のリージョンのホスト名も同じパターンに従いますが、リージョン固有のドメインになります。

データの取り込み

Webhook設定とソース作成が完了した後、最初のイベントがトリガーされると、コネクタはすぐにLINE OAイベントデータをTreasure Dataに取り込み始めることができます。

データスキーマ

Eventsテーブルのスキーマ

Eventsテーブルには、LINE Messaging APIからの詳細なWebhookイベントデータが含まれます。各行は、以下の構造を持つ単一のWebhookイベントを表します:

カラム名データ型説明
event_modestringイベントモードのステータス(例:「active」)
event_typestringWebhookイベントのタイプ(例:「message」、「postback」、「follow」、「unfollow」)
event_deliverycontextJSON stringisRedeliveryフラグを含む配信コンテキスト情報
event_timestamplongイベントが発生した時のUnixタイムスタンプ(ミリ秒)
destinationstringWebhookを受信したLINE公式アカウントのユーザーID
event_sourceJSON stringuserIdとtype(user、group、またはroom)を含むソース情報
event_postbackJSON stringポストバックイベントデータ(ポストバックイベントのみ)。dataとparamsを含む
event_webhookeventidstringLINEからの一意のWebhookイベントID
event_replytokenstringイベントに応答するためのリプライトークン
record_uuidstringこのレコードに対してTreasure Dataが生成した一意の識別子
event_messageJSON stringtext、markAsReadToken、quoteToken、メッセージID、typeを含むメッセージイベントデータ
timelongレコードがTreasure Dataに取り込まれた時のUnixタイムスタンプ

イベントデータの例

メッセージイベントの例:

{
  "event_mode": "active",
  "event_type": "message",
  "event_deliverycontext": "{\"isRedelivery\":false}",
  "event_timestamp": 1764739548058,
  "destination": "U26272c69eb9c705cdb310034a13d8a2c",
  "event_source": "{\"userId\":\"U7df7e1515baea0a9898c2d8553d016d1\",\"type\":\"user\"}",
  "event_webhookeventid": "01KBHAS125354QY30EQDB80MXV",
  "event_replytoken": "a24d6cd95f4e4cceb74505a3c67fa1f0",
  "record_uuid": "c32f42c1-6464-312e-8a73-64b19c6c8116",
  "event_message": "{\"text\":\"Hello\",\"id\":\"590404062261018659\",\"type\":\"text\"}",
  "time": 1764739556
}

ポストバックイベントの例:

{
  "event_mode": "active",
  "event_type": "postback",
  "event_deliverycontext": "{\"isRedelivery\":false}",
  "event_timestamp": 1764739548788,
  "destination": "U26272c69eb9c705cdb310034a13d8a2c",
  "event_source": "{\"userId\":\"U7df7e1515baea0a9898c2d8553d016d1\",\"type\":\"user\"}",
  "event_postback": "{\"data\":\"second-menu\",\"params\":{\"newRichMenuAliasId\":\"second-menu\",\"status\":\"SUCCESS\"}}",
  "event_webhookeventid": "01KBHAS1TNJ9W3GZZSAYG8WSEW",
  "event_replytoken": "e6a713af40ed416e8844db6638705d01",
  "record_uuid": "5289e93e-d7c2-3a7d-9ba0-8de86cc53e4f",
  "time": 1764739552
}

event_sourceevent_messageevent_postbackなどのJSON文字列カラムには、ネストされたJSONデータが含まれています。クエリでTreasure DataのJSON関数を使用して、特定のフィールドを抽出できます。