top of page
  • Akira Mizuno

XのツイートをTeamsに投稿するフローの作成~3.巡回用リストの作成/Power Automate

更新日:11 分前

1.はじめに

 

ツイートの検索条件を変更したいとき、都度フローを修正するのは結構大変です。

そこで、その条件をMicrosoft Listsのリストに登録しておき、フローから参照するようにします。

リストの特徴を生かし、検索条件とTeams投稿先情報のセットで複数登録できるようにして、フローで巡回する処理を作成します。


2.Microsoft Listsの作成

 

巡回用リストを以下のように作成します。


(1)空白のリストの選択

Microsoft Listsを開き、「リストを作成」から「空白のリスト」を選択します。


(2)リスト名の入力と作成

名前の欄にリスト名を入力します。

保存先(下図の青枠)は、マイリストを選択します。

(チームで共有する場合には、 プルダウンからSharePointのサイトを選択します。事前にSharePointサイトを作成しておく必要があります。)


設定し終わったら「作成」ボタンをクリックします。


(3)列の追加

上部の「+列の追加」をクリックして、「次へ」から後述の表のとおり、列を作成していきます。


上記の列の追加を繰り返し、以下の表の通りに作成します。

既定値が空欄の項目は何も入力しません。

名前

説明

種類

既定値

必須※1

query

ツイートの検索文字列

1行テキスト


はい

teams_group_id

投稿先TeamsのグループID

1行テキスト


はい

teams_channel_id

投稿先TeamsのチャネルID

1行テキスト


はい

newest_id

取得済みの最新投稿ツイートID

1行テキスト

0

はい ※3

newest_time

newest_idの投稿日時

日付と時間 時間を含める※2

2000/01/01 00:00 ※3

はい ※3

有効化フラグ

はい/いいえ

はい

はい

※1 必須の欄は、列の作成画面で、「その他のオプション」を開き、「この列に情報が含まれている必要があります」で設定します。


※2 newest_timeについては、以下のように「時間を含める」を「はい」に設定します。

※3 既定値は以下のように「日時の選択」をプルダウンから選んでから、年月日と時間を設定してください。

(本記事の公開直後は「必須」を「いいえ」としていましたが、フローで列名のチェックを行うために「はい」に変更しています。)


その他、列の名前を日本語にすると、Power Automateで利用するときにエンコードされるため分かりにくくなります。そのため、英語&記号文字としています。


(4)設定の確認

作成した列の設定を確認します。

右上の歯車のアイコンをクリックして設定画面を開き、「リストの設定」をクリックします。


設定した内容が赤枠の部分に表示されるので、表の設定値と比較します。

既定値や説明の項目はありませんが、動作に影響はないため確認を省略してかまいません。

※更新日時や登録日時等の列は自動的に作成されます。


3. 値の入力

 

Microsoft Listsに戻り、作成したリストを選択して、左上の「+新しいアイテムを追加」で値を設定します。


値は以下のように設定します。

タイトル

PowerAutomateテスト

query

teams_group_id

「※TeamsのグループID及びチャネルIDの確認」を参考に、TeamsのグループIDを入力します。

teams_channel_id

「※TeamsのグループID及びチャネルIDの確認」を参考に、Teamsの投稿先チャネルIDを入力します。

newest_id

0(既定値)

newest_time

2000/1/1 0:00(既定値)

is_enabled

はい(既定値)


※teams_group_idとteams_channel_idの値

Teamsのデスクトップアプリから、以下のように「チャネルへのリンクを取得」を選択します。

このリンクをメモ帳などのテキストエディタにペーストして、以下をそれぞれ設定します。

  • teams_group_id(TeamsのグループID) 「groupId=」から「&」に囲まれた文字列が該当します。(「&」が無い場合には末尾までが該当します。) 下図の例では、赤枠で囲った下の方の文字列「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx」となります。

  • teams_channel_id(投稿先チャネルID) 「channel/」から次の「/」に囲まれた文字列が該当します。さらに、「%3A」は「:」に、「%40」は「@」にそれぞれ文字を変更します。 下図の例では、赤枠で囲った文字列「19%3Axxxxxxxxxxxxxxxxxxxxxx%40thread.skype」を「19:xxxxxxxxxxxxxxxxxxxxxx@thread.skype」に変更します。

例:


値を入力し終わったら、下部の「保存」をクリックします。

リストにデータが追加されていることを確認します。



5. ツイートの検索文字列(query)について

 

queryの欄に入力した検索条件をX APIにそのまま送信します。

以下のような検索条件を入力できますので、一通りフローが動作するようになったら、色々とお試しください。(検索条件を間違えるとX APIでエラーとなりフローが停止します。)


例えば、 投稿者aaaと投稿者bbbのツイートをメンションしているものを除外して取得する場合は以下のようになります。

(from:aaa OR from:bbb) -has:mentions

なお、検索にヒットしたツイートが多いとフローで実行するアクション数が増加します。また、X APIの呼び出し時に最大取得件数(デフォルト10件)の制限を指定するため、この値を超えると取りこぼしが発生します。

そのため、検索文字列を駆使して、可能な限り必要なツイートに絞り込みます。

例えば、ハッシュタグよりは投稿者名を選択したり、メンション除外(-has:mentions)を設定します。

リポスト除外(-is:retweet)や返信除外(-is:reply)は状況に応じて。



6. おわりに

 

巡回用のリストを作成して、フローで利用する準備ができました。

次回では、フローの全体図を説明します。



Comments


Commenting has been turned off.
bottom of page