(5) フローの全体図
- Akira Mizuno
- 2024年9月16日
- 読了時間: 4分
更新日:2024年11月12日
修正履歴:
2024/10/02 2.1~2.3に作成手順の記事へのリンクを追加
2024/10/18 2.4に作成手順の記事へのリンクを追加
2024/11/12 2.5~2.6に作成手順の記事へのリンクを追加
1.はじめに
今回は、フローの全体図と処理の概要について記載します。
基本的なフローの処理は以下のようになります。
Listsからツイート検索条件やTeams投稿先等の情報を取得
X APIを呼び出してツイートデータを取得
ツイート内容をTeamsチャネルに投稿
実際のツイートには、画像等が添付されていたり、他のツイートの引用、リポスト、返信といった種類がありますのでそれらの処理も加えていきます。
2.フロー概要
機能毎にフローを分割して、それらのフロー図と処理内容を簡単に説明していきます。
(変数定義や初期化等のアクションは省略しています。)
「2.4.Teamsに投稿」までがツイートを取得してTeamsチャネルに投稿するまでの最小限の処理です。
それ以降は機能をつけ足していきますので、徐々にアクション数も増えて処理が複雑になっていきます。
フロー作成時にPCが重かったり、フロー全体のアクション数を抑えたい場合には、それ以降の処理は途中から省略してもそこまでの機能で動作できるようにしています。
例えば、ツイートの返信は投稿しなくてよいということでしたら、「2.9.返信時のTeamsへの投稿」の実装は不要です。
2.1.トリガー設定および巡回リスト取得
繰り返しトリガーで一定期間毎に実行する設定を行い、Listsに登録された巡回情報を取得します。
★作成手順はこちら→(6) トリガー設定および巡回リスト取得

2.2.ツイート一覧の取得
X APIにアクセスして、最近のツイート一覧を取得します。下図には含まれていませんが、変数でX APIのアクセス情報を設定して調整できるようにします。
★作成手順はこちら→(7) ツイート一覧の取得

2.3.投稿データの前処理
取得したツイート一覧にはツイートを編集した場合には過去のデータも含まれるため、それらを除外しておきます。また、古い順にメッセージが投稿されるようにデータを並び替えておきます。
★作成手順はこちら→(8) 投稿データの前処理

2.4.Teamsに投稿
ツイート一覧に含まれる各ツイートをTeamsのチャネルに投稿します。
ツイート本文に加えて、投稿日、投稿者の名前やハンドル名、ツイートIDを抽出して表示します。
また、実際のツイート本文がすべて表示されないため、ツイートIDにはHTMLリンクを設定して、該当ツイートをブラウザで確認できるようにします。
★作成手順はこちら→(9)Teamsに投稿

2.5.巡回リストの更新
取得できた最新のツイートIDをListsに保持するようにします。
★作成手順はこちら→(10) 巡回リストの更新
「2.2.ツイート一覧の取得」でそのIDを指定してX APIを呼び出すと、前回実行時 と同じツイートを再度取得しなくてすみます。

ただし、7日以前のツイートIDを指定するとエラーとなるため、その判定を行っています。
フローの最後で、Listsの最新のツイートIDとその日時を更新します。

2.6.添付メディアの処理
ツイートに添付メディアが含まれている場合には、Teamsチャネルに投稿するときにその画像をHTMLタグ(イメージタグ)で追加します。
処理の簡略化のため、動画やアニメーションGIFの場合にはプレビュー画像を表示します。
★作成手順はこちら→(11) 添付メディアの表示

2.7.参照ツイートの表示
ツイートに参照ツイート(引用・リポスト・返信先のツイート)が含まれる場合、そのデータを抽出してそれぞれに応じた処理を行い、Teamsチャネルに投稿するときにHTMLタグで追加します。
(返信先のツイートは少し処理が異なるため、「2.9.返信時のTeamsへの投稿」で詳細を実装します。)
また、参照ツイート にも投稿日、投稿者の名前やハンドル名、ツイートIDを抽出して表示します。さらには、参照ツイートとわかるようにblockquoteタグで囲っています。


2.8.参照ツイートの添付メディアの表示
参照ツイートにもメディアが添付される場合があります。
処理内容は「2.6.添付メディアの処理」とほぼ同じですが、そのメディア情報を取得するために追加でX APIを呼び出します。

2.9.返信時のTeamsへの投稿
返信先のツイートが含まれる場合には、ツイート本文をそのツイートへの返信としてTeamsチャネルに投稿します。
そのために、投稿済みのTeamsのメッセージIDとツイートIDをセットで配列に保持しておき、返信先のツイートIDに対応するメッセージIDを探せるようにします。
ただ、最近のツイート一覧のデータに返信先のツイートが存在しない場合があります。
その場合には、返信先のツイートを先にTeamsに投稿してから、その返信としてツイート本文を投稿します。

「2.4.Teamsに投稿」で作成した「Teamsにツイートメッセージを投稿」アクションを修正して、返信先ツイートの有無で切り分けます。その分岐先で先に説明した処理を行います。

3.おわりに
次回から、各機能の実装手順の詳細を記載します。手順が長い場合には分割して記事にする予定です。