Twitterから推しの画像を集めたい

投稿者: | 2020年12月1日

この記事は「いのべこ(富士通システムズウェブテクノロジー)Advent Calendar 2020」の1日目の記事です。記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません(お約束)。

はじめに

2020年11月1日、日本サッカー界に衝撃が走りました。川崎フロンターレのバンディエラ、中村憲剛選手(ケンゴさん)が現役引退を発表されたのです。昨年11月に左前十字靭帯に大けがをしたものの今年8月に復帰、引退発表前日にはバースデーゴールを決めるなどまだまだ活躍できる中での引退発表ということで、ベテランの活躍に励まされてきた自分は非常に寂しい気持ちになりました。が、選手でなくともきっと様々な活躍をしてくれるだろうということで、すぐに前向きに気持ちを切り替えました。

この引退発表以降、Twitterにはケンゴさんの思い出とともに写真が多数アップされています。となればやるべき事は一つ。推しの画像を集めましょう

Power Appsを使って即日実装

思いついたが吉日、Power Appsを使ってノーコードでさっと作ってみました。Power Appsはノーコードあるいはローコードで各種サービスを結合し、欲しいアプリやワークフローをクラウド上に作成できるサービスです。画面右上の「無料で試す」からアカウント登録を行うことで、お試しもできます。

今回は「Twitterのツイートで”中村憲剛”が含まれたツイートの画像をOneDriveに保存する」フローを作成しました。非常にシンプルなため、試しながら調べながらで1時間程度で作れました。

フローの新規作成

作成時に「スケジュール」を選択することで、繰り返し実行するフローが作成できます。次の画面ではフローの名称や実行間隔などの設定を行います。

設定が終わると、繰り返し実行のコネクタのみが表示されます。「新しいステップ」から次のコネクタを追加します。

Twitter検索

まず、Twitterのツイート検索を行います。コネクタの検索欄に「twitter」と入力し、「ツイートの検索」を選びます。なお、Twitterなど外部サービスで利用者認証が必要なものは、追加した直後にアカウント情報の設定を行います。

次にコネクタの設定を行います。検索したいキーワードをダブルクォーテーションでくくるのと、画像添付されたツイートに絞る「filter:images」とリツイートを省く「-filter:retweets」を付加するのがポイント。最大件数は最終的には上限の100件にしました。このコネクタの検索結果は、JSON形式で取得されます。

画像URLの取得

検索結果には複数のツイートが含まれていますので、個々のツイート情報に対し順々に処理を適用するために「Apply to each」コネクタを使用します。

「Apply to each」の設定には、個々のツイート情報から画像URLを取得するため、「メディアURL」を指定します。

すると画面は下記のように「Apply to each」が二つ重なった形に自動的にセットされます。1段目のループでツイートを1つ取り出し、2段目のループで添付画像のURLを1つ取り出していることになります。

取り出したURLから画像データを取得するため、「アクションの追加」をクリックします。Twitterの場合、URLを直接コールするのではなく、GETリクエストを送ることで画像を取得できますので、組み込みアクションから「HTTP」を選択します。

設定の「URI」には、「現在のアイテム」を指定します。これは直前処理の出力のことで、ここではツイートから取り出した画像URLとなります。なお、「現在のアイテム」は2つある「Apply to each」のそれぞれに存在するので、内側のループのほうを選ぶ必要があります。

画像の保存

これでURLから画像データが取得できましたので、OneDriveに保存することにします。One Drive for Businessと同じアイコンなので注意のこと。OneDriveの「ファイルの作成」を追加します。

保存先のパス名は適当に指定してOKです。フロー動作時にフォルダを自動作成してくれます。ファイルコンテンツはHTTPの「本文」を指定します。ファイル名については、下記の文字列を入力することで関数として認識されます。何をやっているかは見ての通りで、画像URLのフルパスからファイル名を取り出しています。

@{last(split(items('Apply_to_each'),'/'))}

これで実装は終わりです。

チェックと実行

画面右上の「フローチェッカー」をクリックすると、エラーチェックができます。

エラーがなければテスト実行をしてみましょう。画面右上の「テスト」をクリックすると、フローの実行をしても良いか確認されますので、実行してみましょう。

下記画面から「フロー実行ページ」へ移動し、うまく実行できているかを確認します。

これまでの実行履歴が一覧表示されます。

開始時刻をクリックすると、現在の実行状況が表示されます。検索結果から画像を保存するまでの処理はそれなりにかかるようです。

この画面でコネクタをクリックすると、処理中のデータを見ることも可能です。作成したフローが正しく動作しない場合のヒントになると思います。

取得結果

以下は結果例です。今回は検索ワードも単純なため、無関係の画像が多く含まれているようです。もうひと工夫が必要そうです。

まとめ

強力なコネクタの機能により、ノーコードでもこのような処理が書けてしまうのは非常に便利です。自動化ツールを作成するなど業務にも役立ちそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください