Column

コラム

  • CDP
  • CDP活用
  • LINE Messaging API

Treasure DataからLINE Messaging APIを実行してみる

● はじめに

 ここ最近お客様よりお問い合わせいただくことが多いご相談の一つに、LINEとCDPの連携がございます。

 本記事では、複数あるLINEのAPIの中から、メッセージの送受信をメインに操作できる「LINE Messaging API」をTreasureData上のプログラムから利用、メッセージ履歴のCDP取得やメッセージの送信を実行した手順をご紹介したいと思います。

※今回はLINEの企業アカウントがすでに開設されていることを前提とした内容になります

※2022年2月時点の情報です

● 目次

・LINE Messaging APIを実行するための下準備
・ユーザーとのメッセージ履歴のCDP取得(webhookの設定)
・ユーザーへメッセージを送信
・まとめ

● LINE Messaging APIを実行するための下準備

 まず、LINE Messaging APIを利用するために、アカウントのLINE Messaging APIを有効にする設定を行います。

 最初に、利用しているアカウントでログインをします。

LINEログイン画面

 ログインができたら、「設定」>「Messaging API」の項目を選択、「Messaging APIを利用する」をクリックします。

LINE Messaging API設定画面

  「プロバイダーを作成」を選択し、任意のプロバイダー名(企業名など)を記入して、「同意する」をクリックします。同意後、確認画面が表示されるので「OK」をクリックするとMessaging APIが有効になります。

LINE Messaging API プロバイダー設定画面

  これでLINE Messaging APIを利用する準備ができました。いよいよメッセージの送受信を実行していきます。

● ユーザーのメッセージ履歴の取得(webhookの設定)

 まずは、webhookという、ユーザーとのメッセージ履歴を取得する機能を利用してみます。今回は取得できた履歴をTreasureDataの特定のテーブルに格納する設定を行います。

 初めに、LINEの管理画面にログインし、「設定」 > 「応答設定」 を選択、応答モードを「Bot」、webhookを「オン」に設定します。

LINE Messaging API 応答設定画面

 次に、「Messaging API」を選択し、「Webhook URL」の欄に、TreasureDataの格納先を指定したPostback API URLを記載します。

※TreasureData Postback APIの記述サンプル
https://in.treasuredata.com/postback/v3/event/{database}/{table}?td_write_key=XXXYYYZZZZ&

LINE Messaging API 設定画面

 これらの設定が完了すると、LINEアカウントでメッセージのやり取りが発生するたび、TreasureDataの格納先Tableに履歴データが取得されるようになります。

実際にTreasureDataの格納先を確認すると、履歴を取得できていることが確認できました!

TreasureData 履歴データ

● ユーザーへメッセージを送信

 今度は特定のユーザーにメッセージを送信する機能を試してみます。

 TreasureDataに、LINE Messaging APIを実行するWorkFlowを設定します。下記記述サンプルです。

## Workflow Dig ファイル記述

timezone: Asia/Tokyo_export:
_export:

+task1:
docker:
image: ‘digdag/digdag-python:3.9’
_env:
TD_API_KEY: ${secret:td.apikey}
TD_API_SERVER: ${secret:td.apiserver}
CHANNEL_ACCESS_TOKEN: ${secret:line.chennel_access_token}
py>: py_scripts.simple_message
DATABASE: XXXXX
TABLE: XXXXX
WRITE_METHOD: ‘overwrite’ #append,overwrite
USER_IDS:[‘aaa’,’bbb’,’ccc’]

## py_scripts.simple_message

import os
import sys
import numpy as np
import pandas as pd
os.system(f”{sys.executable} -m pip install -U pip line-bot-sdk”)
os.system(f”{sys.executable} -m pip install -U pip flask”)
os.system(f”{sys.executable} -m pip install -U pip pytd”)

import pytd

from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage, TemplateSendMessage, ButtonsTemplate, PostbackAction, MessageAction

def simple_message(user_ids):
CHANNEL_ACCESS_TOKEN = os.environ[“CHANNEL_ACCESS_TOKEN”]

line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
res = line_bot_api.multicast(user_ids, TextSendMessage(text=’いつもご利用いただきありがとうございます!’))
return res

 実行すると、無事メッセージが送信されました!

LINE メッセージ画面

● まとめ

 今回はLINE Messaging APIを用いてメッセージ履歴のCDP取得とメッセージ送信を実行する方法をご紹介しました。

 弊社では、新規データソースの連携方法の整理や実際の連携作業、開発といったことから、既に連携しているデータのトラブル、ご相談まで幅広くサポートしています。お困りごとございましたらお気軽にご相談ください。

本件に関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp

人気のコラムランキング

PICK UP

今、CMPは導入するべきか?

コラム

Treasure Data CDPを活用したOneID(統合ID)構築3 姓名突合での落とし穴

コラム

機械学習 | 「viz」×焼肉のたれの売上を肉の売上でシミュレーションしてみた

コラム

CMPツールの導入手順について

コラム

TOPへ
戻る