修正履歴:
2024/9/11 「2.投稿先のTeamsチャネルの作成」を追加。「3.4.設定の確認」の図を差し替え(newest_id/newest_timeの必須をなしに変更)。その他文章の調整。
2024/9/10 「3.Microsoft Listsの作成」の「3.3.列の追加」で、newest_id/newest_timeの必須を「いいえに変更、newest_idの既定値をなしに変更」。「4. 値の入力」でnewest_id/newest_timeを空欄に変更。
2024/7/24 「3.Microsoft Listsの作成」の「3.3.列の追加」で、newest_timeを必須に変更。
1.はじめに
ツイートの検索条件を変更したいとき、都度フローを修正するのは結構大変です。
そこで、その条件をMicrosoft Listsのリストに登録しておき、フローから参照するようにします。
リストの特徴を生かし、検索条件とTeams投稿先情報のセットで複数登録できるようにします。フローでは、一つずつその情報を取得する処理を行います。
2.投稿先のTeamsチャネルの作成
ツイートを投稿するTeamsのチャネルを作成しておきます。
※作成権限がない場合には管理者等に相談してください。
3.Microsoft Listsの作成
巡回用リストを以下のように作成します。
3.1.空白のリストの選択
Microsoft Listsを開き、上部の「+新しいリスト」をクリックします。「リストを作成」欄の「空白のリスト」を選択します。
3.2.リスト名の入力と作成
名前の欄にリスト名を入力します。
保存先(下図の青枠)は、「マイリスト」を選択します。
(マイリストの場合には、個人のOneDriveに保存します。チームで共有する場合には、 プルダウンからSharePointのサイトを選択します。なお、事前にSharePointサイトを作成しておく必要があります。)
設定し終わったら「作成」ボタンをクリックします。
3.3.列の追加
まずは上部の「+列の追加」をクリックします。「次へ」をクリックして後述の表のとおりに列を作成していきます。
上記の列の追加を繰り返し、以下の表の通りに作成します。
既定値が空欄の項目は何も入力しません。
名前 | 説明 | 種類 | 既定値 | 必須※1 |
---|---|---|---|---|
query | ツイートの検索文字列 | 1行テキスト | はい | |
teams_group_id | 投稿先TeamsのグループID | 1行テキスト | はい | |
teams_channel_id | 投稿先TeamsのチャネルID | 1行テキスト | はい | |
newest_id | 取得済みの最新投稿ツイートID | 1行テキスト | いいえ | |
newest_time | newest_idの投稿日時 | 日付と時間 時間を含める※2 | いいえ | |
is_enabled | 有効化フラグ | はい/いいえ | はい | はい |
※1 必須の欄は、列の作成画面で、「その他のオプション」を開き、「この列に情報が含まれている必要があります」で設定します。
※2 newest_timeについては、以下のように「時間を含める」を「はい」に設定します。
その他、列の名前を日本語にすると、Power Automateで利用するときにエンコードされるため分かりにくくなります。そのため、英語&記号文字としています。
3.4.設定の確認
作成した列の設定を確認します。
右上の歯車のアイコンをクリックして設定画面を開き、「リストの設定」をクリックします。
設定した内容が赤枠の部分に表示されるので、表の設定値(列の名前、種類、必須)と一致しているか確認します。
※既定値や説明の項目はありませんが、動作に影響はないため確認を省略してかまいません。
※列の表示順が異なっていても問題ありません。
※赤枠以外の更新日時や登録日時等の列は自動的に作成されます。
4. 値の入力
Microsoft Listsに戻り、作成したリストを選択して、左上の「+新しいアイテムを追加」で値を設定します。
例えば、値を以下のように設定します。
(queryを変更する場合は、「5. ツイートの検索文字列(query)について」を参考にしてください。)
タイトル | PowerAutomateテスト |
query | |
teams_group_id ※2 | 「※2 TeamsのグループID及びチャネルIDの確認」を参考に、TeamsのグループIDを入力します。 |
teams_channel_id ※2 | 「※2 TeamsのグループID及びチャネルIDの確認」を参考に、Teamsの投稿先チャネルIDを入力します。 |
newest_id ※1 | |
newest_time ※1 | |
is_enabled | はい(既定値) |
※1 空欄とします。
※2 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でエラーとなりフローが停止します。)
Xアプリの検索欄に入力して試すことができます。
例えば、 投稿者aaaと投稿者bbbのツイートをメンションしているものを除外して取得する場合は以下のようになります。
(from:aaa OR from:bbb) -has:mentions
なお、検索にヒットしたツイートが多いとフローで実行するアクション数が増加します。また、X APIの呼び出し時に最大取得件数(デフォルト10件)の制限を指定するため、この値を超えると取りこぼしが発生するかもしれません。
まずは検索文字列を駆使して、可能な限りツイートを絞り込みます。
例えば、ハッシュタグよりは投稿者名を選択したり、メンション除外(-has:mentions)を設定します。
リポスト除外(-is:retweet)や返信除外(-is:reply)は必要に応じて設定します。
6. おわりに
巡回用のリストを作成して、フローで利用する準備ができました。
次回は、X APIを使用するための準備について説明します。
Comments