2022.11.25 コラム
Googleアラートのデータを Treasure Data に自動連携してみた
● はじめに
GoogleアラートのRSSフィードをSlackへ投稿し、Slackへ投稿されたデータをTreasure DataのWorkflowを使い、Treasure Dataへデータを取り込んでみました。
Workflowを使用することで、特定のキーワードに関連するニュースなどの情報を自動で取り込むことができます。
※2022年11月時点の内容となります。
● 設定の流れ
今回は、おおまかに以下のような流れで設定を行います。
- Googleアラートで任意のキーワードを設定する
- Googleアラートの情報をSlackへ投稿する
- Slackデータ取得のためのSecrets情報取得
- Treasure DataのWorkflowを作成し、データを格納する
1.Googleアラートで任意のキーワードを設定する
まずはGoogleアラートで取得したいデータに関連するキーワードの設定をします。
Googleアラートへアクセス
「アラートを作成」へ通知したいキーワードを入力し、オプションをクリック。
各オプション項目を設定
今回はSlackに通知が来るように設定したいので、配信先は「RSSフィード」にします。
※RSSフィードを選択すると、頻度は「その都度」しか選択できません。
各項目を設定したら「アラートを作成」をクリックし、設定完了となります。
2.Googleアラートの情報をSlackへ投稿する
RSSフィードを利用し、Googleアラートの通知がSlackに投稿されるように設定します。
マイアラート画面で、Slackへ投稿したいキーワードの「RSSマーク」をクリックし、
ブラウザで表示されているRSSのURLをコピーします。
Slackの App Directory (App ディレクトリ) の RSS ページ にアクセスし、フィードの追加をします。
※SlackワークスペースにRSS アプリをインストールしておく必要があります。
「フィードURL」へ先ほどコピーしたRSSのURLを貼り付け、
「チャンネルへの投稿」で通知が投稿されるチャンネルを選択します。
最後に「このフィードを購読する」をクリックし、設定完了となります。
3.Slackデータ取得のためのSecrets情報取得
Slackデータ取得のために、以下2つのSecrets情報を取得する必要があります。
- slack.channelid
- slack.token
●slack.channelidの取得
Slackの通知先に設定したチャンネルの詳細を開くと、一番下に「チャンネルID」が表示されるので、コピーし、Treasure DataのWorkflow作成時のSecretsに設定します。
●slack.tokenの取得
Slack APIにアクセスし、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を実行すると、格納先に設定したテーブルに以下のようにデータが格納されます。
● まとめ
Treasure DataのWorkflowとSlackを活用して、Googleアラートのデータを取得することにより、
手間なく自動で、素早くデータを収集することができるようになります。
それにより、データ分析のサイクルを高めてデータを充実させることで、自社のデータ利活用推進に貢献できます。
弊社では、新規データソースの連携方法の整理や実際の連携作業・開発から、既に連携しているデータのトラブル、ご相談まで幅広くサポートしています。
お困りごとございましたらお気軽にご相談ください。
》CDP総合支援サービス ~構想・構築・活用~ のサービス資料はこちら
本件に関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp