Column

コラム

  • Googleアラートのデータを Treasure Data ...

Googleアラートのデータを Treasure Data に自動連携してみた

● はじめに

GoogleアラートのRSSフィードをSlackへ投稿し、Slackへ投稿されたデータをTreasure DataのWorkflowを使い、Treasure Dataへデータを取り込んでみました。
Workflowを使用することで、特定のキーワードに関連するニュースなどの情報を自動で取り込むことができます。

※2022年11月時点の内容となります。

● 設定の流れ

今回は、おおまかに以下のような流れで設定を行います。

  1. Googleアラートで任意のキーワードを設定する
  2. Googleアラートの情報をSlackへ投稿する
  3. Slackデータ取得のためのSecrets情報取得
  4. Treasure DataのWorkflowを作成し、データを格納する

1.Googleアラートで任意のキーワードを設定する

まずはGoogleアラートで取得したいデータに関連するキーワードの設定をします。

Googleアラートへアクセス
「アラートを作成」へ通知したいキーワードを入力し、オプションをクリック。

アラート設定

各オプション項目を設定
今回はSlackに通知が来るように設定したいので、配信先は「RSSフィード」にします。
※RSSフィードを選択すると、頻度は「その都度」しか選択できません。

オプション設定

各項目を設定したら「アラートを作成」をクリックし、設定完了となります。

2.Googleアラートの情報をSlackへ投稿する

RSSフィードを利用し、Googleアラートの通知がSlackに投稿されるように設定します。

マイアラート画面で、Slackへ投稿したいキーワードの「RSSマーク」をクリックし、
ブラウザで表示されているRSSのURLをコピーします。

RSS取得

Slackの App Directory (App ディレクトリ) の RSS ページ にアクセスし、フィードの追加をします。
※SlackワークスペースにRSS アプリをインストールしておく必要があります。

Slackフィード設定

「フィードURL」へ先ほどコピーしたRSSのURLを貼り付け、
「チャンネルへの投稿」で通知が投稿されるチャンネルを選択します。
最後に「このフィードを購読する」をクリックし、設定完了となります。

3.Slackデータ取得のためのSecrets情報取得

Slackデータ取得のために、以下2つのSecrets情報を取得する必要があります。

  • slack.channelid
  • slack.token

slack.channelidの取得

Slackの通知先に設定したチャンネルの詳細を開くと、一番下に「チャンネルID」が表示されるので、コピーし、Treasure DataのWorkflow作成時のSecretsに設定します。

Slackチャンネル詳細

●slack.tokenの取得

Slack APIにアクセスし、Tokenを取得します。

Token取得画面

発行されたTokenをコピーし、Treasure DataのWorkflow作成時のSecretsに設定します。

4.Treasure DataのWorkflowを作成しデータを格納する

今回はTreasure DataのWorkflowを活用し、Slackに通知されるGoogleアラートの投稿データを
Treasure Dataへ格納できるようにします。

●Workflowの作成

今回は以下の記述でWorkflowを作成しました。

timezone: Asia/Tokyo
schedule:
  #daily>: 18:00:00
  hourly>: 00:00

  td:
    database: 格納先データベース名
    table: 格納先テーブル名
    endpoint:
      us: https://in.treasuredata.com
      jp: https://tokyo.in.treasuredata.com
  base_endpoint: https://slack.com/api/conversations.history?

+api_job:
  +request:
    http>: ${base_endpoint}token=${secret:slack.token}&channel=${secret:slack.channelid}
      &count=100&oldest=${(session_unixtime)-3600}&latest=${session_unixtime}
    method: GET
    headers:
      - Accept: application/x-www-form-urlencoded
    store_content: true

+write_data:
  for_each>: 
  response: ${JSON.parse(http.last_content).messages}
  _do:
    +write_data_to_table:
      http>: ${td.endpoint.us}/postback/v3/event/${td.database}/${td.table}
      method: POST
      headers:
        - Accept: application/json
        - X-TD-Write-Key: ${secret:td.apikey}
      content_format: json
      content:
        feed_timestamp: ${moment.unix(Math.ceil(response.ts)).format("YYYY/MM/DD hh:mm")}
        url: ${(response.text).replace("<https://www.google.com/url?rct=j&sa=t&url=","").
       replace(/\r|\n|\"/g,"").replace(/(&ct=ga&cd=).+?$/,"")}
        summary: ${(response.text).replace("<https://www.google.com/url?rct=j&sa=t&url=","").
        replace(/\r|\n|\"/g,"").replace(/^.+?(&ct=ga&cd=).+?\|/,"").
        replace(/(>|<|<b>|")/g,"").replace(/<b>|<\/b>/g,"")}
        keyword: ${(response.username).replace(/Google アラート - |Google Alert - /g,"")}

●Workflow実行結果

上記Workflowを実行すると、格納先に設定したテーブルに以下のようにデータが格納されます。

WF実行結果

● まとめ

Treasure DataのWorkflowとSlackを活用して、Googleアラートのデータを取得することにより、
手間なく自動で、素早くデータを収集することができるようになります。
それにより、データ分析のサイクルを高めてデータを充実させることで、自社のデータ利活用推進に貢献できます。

弊社では、新規データソースの連携方法の整理や実際の連携作業・開発から、既に連携しているデータのトラブル、ご相談まで幅広くサポートしています。

お困りごとございましたらお気軽にご相談ください。

》CDP総合支援サービス ~構想・構築・活用~ のサービス資料はこちら

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

人気のコラムランキング

PICK UP

企業のDX推進におけるダッシュボード内製化について

DXmarketingPICK UP コラムダッシュボード内製化

企業のDX推進に向けた人材教育支援について

GA4marketingPICK UP コラム内製化

【データプライバシーコラム】電気通信事業法改正の解説(2022年7月時点)

CMPPICK UP コラムデータプライバシーデータプライバシーコラム個人情報保護

CMP導入時の注意点

CMPPICK UP コラムデータプライバシーデータプライバシーコラム個人情報保護

TOPへ
戻る