はじめに
Twitterキャンペーンを行う際に、キャンペーンのタグがついたツイートを自動的にリストに集められると、データの整理や分析が出来て便利ですね。
この記事では、Power Automate*1を使うことにより、Twitterのツイートをkintoneアプリに自動登録する方法と、実用例について紹介をします。
この記事はこのような人にお勧めです:
- Twitterキャンペーンでタグ付きのツイートを収集するのに苦労をしている人
- ツイートを表にまとめて管理したい人
- ツイートの回数や投稿時間等の分析がしたい人
⚠️ 注意事項
本記事はX(旧Twitter)のAPIの有料化前に作成した記事です。有料化の影響でいくらかシステムを改修する必要が出てきたので、別記事に改修内容について案内しています。本記事を読んだ後に、下記の記事を読んで頂けると幸いです。
システムの概要
ツイートを自動登録するシステムはPower Automateで作成しました。
Power Automate上ではTwitterへの連携とkintoneへの連携をそれぞれ設定しています。1分に1回、指定したクエリにマッチする新しいツイートがTwitter上にあるかを確認し、結果を配列として返してもらい、配列内の1つ1つのツイートの情報をWebデータベースとして使えるkintoneに登録させています。
システムの設定方法
事前の準備
このシステムを設定するには、下記のサービスのアカウントが必要です:
- kintone
開発者ライセンスに申し込むと、開発者向けの無料ライセンスで気軽にkintoneを試すことができます。 - Power Automate
Power Apps 開発者プランに加入すると、開発者向けの無料サービスで気軽にPower Automateを試すことが出来ます。 - Twitter
Twitterのサイトより、無料でアカウントを作成することが出来ます。
kintoneの設定
まず、ツイートを溜める先のアプリを作成する必要があります。kintoneヘルプドキュメントと下記のフィールド情報を参考にしながら、アプリを作成してください。全く同じ設定が必要なわけではないですが、ツイートIDを登録するための「文字列(1行)」フィールドは最低限必要です。
フィールドを設定し終わったらフォームの保存をして、設定タブに遷移してからAPIトークンを選択してください。APIトークンを生成して、「レコード閲覧」のアクセス権を与えます。このAPIトークンがあると、外部サービスから簡単にkintoneアプリのデータにアクセスすることが出来ます。APIトークンは後で使用するので、どこかにメモっておいて、保存ボタンをクリックします。
kintoneアプリの仕上げに、下記の記事を参考にアプリの見た目を整えるJavaScriptファイルをアップロードします*2。
その後、設定を保存し、青い「アプリを公開」ボタン(場合によっては「アプリを更新」)をクリックします。これでkintoneアプリの準備が出来ました。
Power Automateでのフローの流れ
Power Automate上での設定について説明をします。
Power Automateでは連携を動作するきっかけとなる「トリガー」と、実際に処理を行う「アクション」の組み合わせで、システムの流れを決める「フロー」を作成することが出来ます。このシステムでは下記のようなフローを設定しています。
フローには次の4つのステップを設定しています。
1. 繰り返し(Recurrence)ステップ
このステップでは【繰り返し(Recurrence)】トリガーを使い、フローが定期的に実行される設定をします。最短で1分の間隔で、フローが繰り返し実行されるように設定が出来ます。
2. kintoneへのHTTPリクエストのステップ
このステップではkintoneアプリに登録されている最新のツイートのツイートIDを取得します(ツイートIDは次のステップで使います)。HTTPアクション*3を設定し、ツイートを溜める先のアプリに対してレコードを取得するためのkintone APIの情報を設定します。
3. Twitterでの検索ステップ
このステップでは、Twitterの【Search tweets】アクションを使って、指定したクエリでツイートの検索をします。例として、以前Virtual Marketというイベントで「キンカツ集会」というイベントを開催しました。
このイベントでは「#キンカツ集会」というツイートをTwitterから拾いたかったので「#キンカツ集会 -filter:retweets」とクエリを設定しました(末尾の -filter:retweets はリツイート分のツイートを取得結果から除いてくれます)。
また、このアクションのsinceIdのパラメータには前ステップで取得したツイートIDを設定します。そうすることによって、そのツイート以降に投稿されたツイートの検索結果を返してくれます。取得するツイートの件数はMAXで100件まで指定が出来ます。
4. kintoneへの登録のステップ
このステップでは、取得したツイートをkintoneアプリに登録します。 取得された複数のツイートは配列として持たれるので、【それぞれに適用する(Apply to each)】アクションで配列の中の1件ずつのデータに対して別の処理を行うようにします。
その別の処理としてはkintoneの【アプリにレコードを追加】アクションを選択し、kintoneアプリにツイートの内容がレコードとして登録するようにします。登録する内容は自由ですが、ツイートIDが確実に登録されるように設定をします。
このステップでフローは完成です。
フローを可動させる
このPower Automateのフローでは、kintoneアプリからレコードを取得するステップが存在するため、フローを可動させる前にkintoneアプリには予めレコードが最低1件登録されてる必要があります。ツイートIDがしっかりと設定されるように、手動でレコードを1つ登録します。ツイートIDは、対象のツイートの末尾にある長い数字です。
これで準備は整いました。
Power Automate上で「オンにする」を押せば、先程のツイートを起点にシステムが可動します。設定したフローを手動で「オフにする」を選択するまでは、定期的に新しいツイートが拾われてkintoneアプリにツイートの情報が蓄積されます。
これで実用的なツイートの自動収集システムの完成です ٩(^ω^)و
ツイートの自動収集の利用シナリオ
筆者が所属してるチームは良くTwitterを利用しています。ツイートの自動収集システムを実際に利用した例を2つ紹介します。
メタフェス中のTwitterキャンペーンに利用
メタフェスというVRChat上の即売会イベントでこのシステムを利用しました。当時、イベント期間中に「#METAFES #kintone」というタグ付きのツイートを投稿することで応募が出来るキャンペーンを行っていました。
⭐️メタフェス プレゼントキャンペーン その1⭐️
— 出雲 沙斗美【いずも さとみ】 (@satomi_izumo) 2022年9月21日
題して自撮りキャンペーン!📸
抽選でアストネス( @astonesscom )さんのギフトカードが5名に当たります!!🎁
kintoneブースで楽しんでる写真を #METAFES と #kintone のタグつきでツイートすることで応募出来ます!#VRChat #キャンぺーン pic.twitter.com/yxvoadBUxK
我々は応募ツイートの中から抽選で当選者を決める必要があったので、必然的に「#METAFES #kintone」というタグ付きのツイートを全て集める必要がありました。手動でツイートを1つ1つ集めるのは考えるだけでも大変ですし、時間のかかる作業なのは目に見えてました。
そこで、イベント期間中にツイートを収集するシステムを稼働させることにより、目的のツイートを全てkintoneアプリにまとめることが出来ました。
手動でツイートを収集しなくても良くなる上に、このリストから抽選で当選者を決めることが出来たので、Twitterキャンペーンの作業がとても簡単になりました。
Maker FaireのIoT連携展示に利用
Maker Faire というクリエイターのDIY展示発表イベントでは、このシステムを作品の一部として利用しました。イベント当日にTwitterで流れてくる「#MFTokyo2022」のイベント公式タグのツイートをリアルタイムでkintoneアプリに自動収集しました。Raspberry PiでPythonのプログラムを走らせ、一定間隔でkintoneアプリからツイートの情報を取得して、LCDディスプレイに次々と表示する作品を展示しました。
定期的に人の #MFTokyo2022 ツイートを晒すギャルbotです#kintone pic.twitter.com/OX0JruuCbG
— forks (@Forks_) 2022年9月4日
来場者は自分がツイートした内容が目の前のIoTデバイスに表示される様子を見て、Twitterを通してリアルなデバイスとのインタラクションが体験することが出来ました。
作品の詳しい説明については、下記の記事が確認できます。
制限について
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