見出し画像

filter:followsでのTwitterフォロー内エゴサーチのPower Automateでの疑似的な実装

誰向け?

5分間でTwitter TLが100ツイート以上流れない、フォロー200以上のユーザーで、ノーコードで自動フォロー内検索を行いたい人向けの記事。

追記:当記事は2022年7月の時点での情報であり、無償利用制限後のTwitterAPIには対応していない。
ツイート取得件数の制限が発生して以降、当記事へのアクセスがされていることを確認しているが、2023年7月4日現在では本システムは稼働しない。


経緯

使うタイミングが限定的なので、IFTTTのPro契約を月単位で行っている。
少なくとも去年はそうだった。

$60じゃん

なんか月額で払ったと思っていたIFTTTが年間契約になっていたし、$2.5/月 だと思ったら$60/年 を既に支払っていた。結構ヘコむ金額……。

支払いを停止しても今年度いっぱいはPro扱いなので、折角ならエゴサのアプレットでも作るかーと思い立った。
備忘録的に作ったものを記録する。詰みポイントも多かった。


filter:followsが使えない

私のような一般名詞ハンドルネームの人間(くもり)はエゴサーチが結構難しい。
SNSへの依存度が高い割に最近はあまりTLに張り付いているわけでもないため、自分が言及されているタイミングに乗り遅れてコミュニケーション機会を逃す。
そのため、頻繁に利用するのがフォロー内検索である。

Twitterの検索窓はフォロー内検索ができる。
チェックボックスをいじるか、テキストで指定することも可能だ。
「filter:follows」と検索ワードに付け加えれば、同様の検索が実現できる。

フォローしているアカウントにチェックを入れるだけでフォロー内検索ができる。

で。

IFTTTではTweetの検索をトリガーに、何らかのアクションをすることができる。例えばSlackに投げたり。
ただ、どうにもIFTTTでのTweetSearchは 「filter:follows」が効かないっぽい。

それならばとPower Automate(旧 Microsoft flow)でも同様にTweetSearchを行なってみたが、やはりフォロー内検索は行えず全人類のツイートから検索された結果が返ってくる。

難しいことはよく分からないが、Twitter APIのsearch queryはそもそも「filter:follows」をサポートしていないようだ。

代案

対策として、Power Automateで以下のクラウドフローを作成した。

5分おきにホームタイムラインを全取得することで疑似的にフォロー内検索とした。

ツイート検索をかけてユーザー名が自身のフォローリストと一致しているか確認する、という方法が真っ先に思い浮かんだが、取得要素数の上限が200だったために諦めた (筆者のフォロー数が1000以上)

検索条件は「条件」内でTweet本文に対して行う。

Tweetの重複チェックが少々ややこしい。
厳密に行うならspreadsheetなりmysqlなり何らかのDBを連携して、ツイートIDを元にチェックをするのが良いと思うが、簡単のために時刻でのチェックのみ行なった。
ここでは5分おきにフローが発火するため、現在時刻から5分以内のツイートかどうか判別している。

Power AutomateのTwitterコネクトでのTweet 作成日時はUTCで記載されているため、注意が必要である。
時刻が「addMinutes(utcNow(), -5)」より大きいかを比較する。
(参考↓
https://zenn.dev/ymasaoka/articles/share-tweet-to-other-sns-with-power-automate-2

出力先は何でもいいが、Slackのプライベートチャンネルに投稿する場合、

  • AppにMicrosoft Power Platform Connectorsが追加されている

  • Microsoft Power Platform Connectorsがプライベートチャンネルに追加されている

  • Power Automateでの投稿先チャンネルにプライベートチャンネルはサジェスチョンされないため、カスタムフィールドに手入力する必要がある

ことに注意が必要である。

留意事項

RT避けを考慮していないため、エゴサ対象ワードがフォロー内でバズったりすると恐らく壊れるが、それはそれで楽しそうなので放置している。
また、TLの速度が100Tweet/5minを超えることがある予感もしているが、頻繁にフローを叩くと普段利用しているTwitterAPIに制限がかかったり、(上限を把握していないが)PowerAutomateの発火数制限にかかる可能性があるためこの程度で抑えてみている。
深刻な問題が発生したら修正するか、稼働を止めて追記する。

APIの利用制限以降、本システムを用いたエゴサーチは機能していない。かなしい。(2023年7月4日追記)

スキを押すと今日のラッキーアイテムを占います