kintoneGeeks blog

kintoneに関連する情報を発信しています

【kintone × Power Automate】タグ付きのツイートを自動収集する方法

はじめに

Twitterキャンペーンを行う際に、キャンペーンのタグがついたツイートを自動的にリストに集められると、データの整理や分析が出来て便利ですね。

kintoneアプリに溜まるタグ付きのツイートのイメージ

この記事では、Power Automate*1を使うことにより、Twitterのツイートをkintoneアプリに自動登録する方法と、実用例について紹介をします。

この記事はこのような人にお勧めです:

  • Twitterキャンペーンでタグ付きのツイートを収集するのに苦労をしている人
  • ツイートを表にまとめて管理したい人
  • ツイートの回数や投稿時間等の分析がしたい人

⚠️ 注意事項

本記事はX(旧Twitter)のAPIの有料化前に作成した記事です。有料化の影響でいくらかシステムを改修する必要が出てきたので、別記事に改修内容について案内しています。本記事を読んだ後に、下記の記事を読んで頂けると幸いです。

kintone-geeks.hatenablog.com

システムの概要

ツイートを自動登録するシステムはPower Automateで作成しました。

Power Automate上ではTwitterへの連携とkintoneへの連携をそれぞれ設定しています。1分に1回、指定したクエリにマッチする新しいツイートがTwitter上にあるかを確認し、結果を配列として返してもらい、配列内の1つ1つのツイートの情報をWebデータベースとして使えるkintoneに登録させています。

Power Automate で取得したツイートをkintoneに登録するシステムの概要図

システムの設定方法

事前の準備

このシステムを設定するには、下記のサービスのアカウントが必要です:

  • kintone
    開発者ライセンスに申し込むと、開発者向けの無料ライセンスで気軽にkintoneを試すことができます。
  • Power Automate
    Power Apps 開発者プランに加入すると、開発者向けの無料サービスで気軽にPower Automateを試すことが出来ます。
  • Twitter
    Twitterのサイトより、無料でアカウントを作成することが出来ます。

kintoneの設定

まず、ツイートを溜める先のアプリを作成する必要があります。kintoneヘルプドキュメントと下記のフィールド情報を参考にしながら、アプリを作成してください。全く同じ設定が必要なわけではないですが、ツイートIDを登録するための「文字列(1行)」フィールドは最低限必要です。

アプリのフィールド設定イメージ

フィールドを設定し終わったらフォームの保存をして、設定タブに遷移してからAPIトークンを選択してください。APIトークンを生成して、「レコード閲覧」のアクセス権を与えます。このAPIトークンがあると、外部サービスから簡単にkintoneアプリのデータにアクセスすることが出来ます。APIトークンは後で使用するので、どこかにメモっておいて、保存ボタンをクリックします。

kintoneアプリのAPIトークンを生成する設定画面

kintoneアプリの仕上げに、下記の記事を参考にアプリの見た目を整えるJavaScriptファイルをアップロードします*2

zenn.dev

その後、設定を保存し、青い「アプリを公開」ボタン(場合によっては「アプリを更新」)をクリックします。これでkintoneアプリの準備が出来ました。

Power Automateでのフローの流れ

Power Automate上での設定について説明をします。

Power Automateでは連携を動作するきっかけとなる「トリガー」と、実際に処理を行う「アクション」の組み合わせで、システムの流れを決める「フロー」を作成することが出来ます。このシステムでは下記のようなフローを設定しています。

Power Automate で設定したフロー

フローには次の4つのステップを設定しています。

1. 繰り返し(Recurrence)ステップ

このステップでは【繰り返し(Recurrence)】トリガーを使い、フローが定期的に実行される設定をします。最短で1分の間隔で、フローが繰り返し実行されるように設定が出来ます。

Power Automateのフローで処理の実行間隔を設定するステップ

2. kintoneへのHTTPリクエストのステップ

このステップではkintoneアプリに登録されている最新のツイートのツイートIDを取得します(ツイートIDは次のステップで使います)。HTTPアクション*3を設定し、ツイートを溜める先のアプリに対してレコードを取得するためのkintone APIの情報を設定します。

Power Automateのフローでkintoneから最新のツイートIDを取得するステップ

3. Twitterでの検索ステップ

このステップでは、Twitterの【Search tweets】アクションを使って、指定したクエリでツイートの検索をします。例として、以前Virtual Marketというイベントで「キンカツ集会」というイベントを開催しました。

kintone-geeks.hatenablog.com

このイベントでは「#キンカツ集会」というツイートをTwitterから拾いたかったので「#キンカツ集会 -filter:retweets」とクエリを設定しました(末尾の -filter:retweets はリツイート分のツイートを取得結果から除いてくれます)。

また、このアクションのsinceIdのパラメータには前ステップで取得したツイートIDを設定します。そうすることによって、そのツイート以降に投稿されたツイートの検索結果を返してくれます。取得するツイートの件数はMAXで100件まで指定が出来ます。

Power Automateのフローで最新のツイートを複数取得するステップ

4. kintoneへの登録のステップ

このステップでは、取得したツイートをkintoneアプリに登録します。 取得された複数のツイートは配列として持たれるので、【それぞれに適用する(Apply to each)】アクションで配列の中の1件ずつのデータに対して別の処理を行うようにします。

その別の処理としてはkintoneの【アプリにレコードを追加】アクションを選択し、kintoneアプリにツイートの内容がレコードとして登録するようにします。登録する内容は自由ですが、ツイートIDが確実に登録されるように設定をします。

Power Automateのフローでツイートを一つずつkintoneに登録するステップ

このステップでフローは完成です。

フローを可動させる

このPower Automateのフローでは、kintoneアプリからレコードを取得するステップが存在するため、フローを可動させる前にkintoneアプリには予めレコードが最低1件登録されてる必要があります。ツイートIDがしっかりと設定されるように、手動でレコードを1つ登録します。ツイートIDは、対象のツイートの末尾にある長い数字です。

kintoneアプリに手動で追加したレコードの情報

これで準備は整いました。

Power Automate上で「オンにする」を押せば、先程のツイートを起点にシステムが可動します。設定したフローを手動で「オフにする」を選択するまでは、定期的に新しいツイートが拾われてkintoneアプリにツイートの情報が蓄積されます。

#キンカツ集会 のタグを含めたツイートが溜まったkintoneアプリ

これで実用的なツイートの自動収集システムの完成です ٩(^ω^)و

ツイートの自動収集の利用シナリオ

筆者が所属してるチームは良くTwitterを利用しています。ツイートの自動収集システムを実際に利用した例を2つ紹介します。

メタフェス中のTwitterキャンペーンに利用

メタフェスというVRChat上の即売会イベントでこのシステムを利用しました。当時、イベント期間中に「#METAFES #kintone」というタグ付きのツイートを投稿することで応募が出来るキャンペーンを行っていました。

我々は応募ツイートの中から抽選で当選者を決める必要があったので、必然的に「#METAFES #kintone」というタグ付きのツイートを全て集める必要がありました。手動でツイートを1つ1つ集めるのは考えるだけでも大変ですし、時間のかかる作業なのは目に見えてました。

そこで、イベント期間中にツイートを収集するシステムを稼働させることにより、目的のツイートを全てkintoneアプリにまとめることが出来ました。

自動的にkintoneアプリに登録されたキャンペーンツイートのリスト

手動でツイートを収集しなくても良くなる上に、このリストから抽選で当選者を決めることが出来たので、Twitterキャンペーンの作業がとても簡単になりました。

Maker FaireのIoT連携展示に利用

Maker Faire というクリエイターのDIY展示発表イベントでは、このシステムを作品の一部として利用しました。イベント当日にTwitterで流れてくる「#MFTokyo2022」のイベント公式タグのツイートをリアルタイムでkintoneアプリに自動収集しました。Raspberry PiでPythonのプログラムを走らせ、一定間隔でkintoneアプリからツイートの情報を取得して、LCDディスプレイに次々と表示する作品を展示しました。

来場者は自分がツイートした内容が目の前のIoTデバイスに表示される様子を見て、Twitterを通してリアルなデバイスとのインタラクションが体験することが出来ました。

作品の詳しい説明については、下記の記事が確認できます。

qiita.com

制限について

Power Automate、Twitter と kintone の3つのサービスを利用しているため、それぞれのサービスについての制限お確認した上でこのシステムを利用する必要があります。

Power Automate の制限

HTTPアクションやkintoneのコネクタは、Power Automateの設定上ではPremiumのコネクタとして扱われています。Premiumコネクタが扱える有償プランに加入するか、Power Automateの無料トライアル版に申し込むか、またはPower Apps 開発者プランに申し込むことでPremiumコネクタが使えるようになります。それぞれのプランには一定期間内のフロー数の実行制限があるので、事前に確認をして、フローの「繰り返し(Recurrence)ステップ」の間隔を調整しましょう。

Twitter の制限

Power AutomateのフローではTwitterのAPIが使用されています。その中でもSearch APIが利用されているのですが、Search APIの公式のドキュメントによると、過去7日間までのツイートしか検索が出来ません。この制限内でシステムを可動するか、有償プランに加入してこの制限を回避する必要があります。

kintone の制限

kintoneの主な制限値はkintoneのヘルプサイトで確認が出来ます。Power AutomateのフローではkintoneのAPIを利用しているので、APIに関する制限値を確認をしましょう。kintoneでは、1日に実行できるAPIリクエスト数は1つのアプリにつき10,000件までとなります。

最後に

実は2023年中にTwitterのAPI有料化の影響で、本システムは記事通りに設定することが出来なくなりました。改修が必要になったので、続きは下記の記事から読んでみてください。 kintone-geeks.hatenablog.com

*1:マイクロソフトが開発した、様々なクラウドサービスの連携がウェブ上で自動化処理が行えるシステム

*2:見た目を整えるだけなので、このステップは実装しなくても、本記事のPower Automateのシステムは動きます

*3:Power Automate上にはkintoneのレコード取得アクションが存在しないため、このステップでは代わりに【HTTP】のアクションを代わりに使用します