Quick Answer
実用的な Serenity 新規投稿監視は streaming ではなく polling job です。TwexAPI POST /twitter/advanced_search/page に searchTerms: ["from:aleabitoreddit -filter:retweets -filter:replies"] と sortBy: "Latest" を渡し、first run を baseline として保存し、未見の tweet_id だけ alert します。通知前に raw tweet を保存します。
FAQ
初回実行を baseline として扱う理由は?
first search result には過去投稿も含まれるため、全部 alert すると noise になります。まず tweet_id を保存し、その後に出現した ID だけ alert します。
default monitor で retweet と reply を除外する理由は?
alert では original post が最も強い signal になりやすいです。-filter:retweets -filter:replies により duplicate や low-context notifications を減らします。reply も必要なら -filter:replies を外し、別 monitor として保存します。
monitor は Advanced Search をどの頻度で poll すべきですか?
多くの monitoring jobs は 5〜15 分間隔で十分です。短い interval は detection delay を減らしますが calls と alert churn を増やします。interval、query、baseline state は config 化します。
Serenity が話題になりそうな公開投稿を出した場合、議論が広がる前に知りたいことがあります。TwexAPI の Advanced Twitter Search by Page を from:aleabitoreddit と sortBy: Latest で定期実行すると、新しい公開一致を検出できます。
これはストリーミング接続ではなく、ポーリングです。重要なのは状態管理です。取得済みの tweet_id を保存し、初回実行は baseline として扱い、監視開始後に出てきた投稿だけを通知します。
監視の流れ
Answer: 監視の流れとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.10/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。
小さなモニターは、次の順序で動かします。
- 最新の
from:aleabitoreddit結果を取得します。 - 初回実行では
seen_idsを初期化し、通知は送りません。 - 2 回目以降は、各
tweet_idを保存済み ID と比較します。 - Slack、メール、Webhook 通知の前に、元の投稿データを保存します。
- 5 分から 15 分程度の間隔で待機します。
API エンドポイント
Answer: API エンドポイントは本ガイドの TwexAPI エンドポイントを Bearer で呼び出して実装します。バッチ/ページングで約 5 Credits/回・20+ QPS です。
POST https://api.twexapi.io/twitter/advanced_search/page
Authorization: Bearer <your_token>
Content-Type: application/jsoncurl --request POST \
--url https://api.twexapi.io/twitter/advanced_search/page \
--header 'Authorization: Bearer <your_token>' \
--header 'Content-Type: application/json' \
--data '{
"searchTerms": ["from:aleabitoreddit"],
"sortBy": "Latest"
}'Python ポーリング例
Answer: Python ポーリング例とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.10/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。
この例では、制御の流れを示すために seen_ids をメモリに置いています。実運用では、データベース、Redis、または永続化できるローカルファイルを使ってください。
1import time
2import requests
3
4TOKEN = "<your_token>"
5URL = "https://api.twexapi.io/twitter/advanced_search/page"
6HEADERS = {"Authorization": f"Bearer {TOKEN}"}
7seen_ids = set()
8initialized = False
9
10def fetch_latest():
11 response = requests.post(
12 URL,
13 headers=HEADERS,
14 json={"searchTerms": ["from:aleabitoreddit"], "sortBy": "Latest"},
15 timeout=30,
16 )
17 response.raise_for_status()
18 return [tweet for tweet in response.json().get("data", []) if tweet]
19
20while True:
21 latest = fetch_latest()
22
23 if not initialized:
24 seen_ids.update(tweet["tweet_id"] for tweet in latest if tweet.get("tweet_id"))
25 initialized = True
26 print(f"{len(seen_ids)} 件の既存投稿で初期化しました")
27 else:
28 for tweet in reversed(latest):
29 tweet_id = tweet.get("tweet_id")
30 if tweet_id and tweet_id not in seen_ids:
31 seen_ids.add(tweet_id)
32 print("NEW", tweet_id, tweet.get("text", ""))
33
34 time.sleep(300)本番運用チェックリスト
Answer: 本番運用チェックリストとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.10/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。
seen_idsはメモリではなく、データベース、キー値ストア、または永続化できるローカルファイルに保存します。- 初回実行を baseline 初期化にするのか、現在見えている投稿も通知するのかを決めます。
- 必要な鮮度と credits 予算に応じて、5 分から 15 分ごとに実行します。
- Slack、メール、Webhook の通知前に生レスポンスを保存します。
- リトライ時に同じ投稿を何度も通知しないよう、アラートの抑制を入れます。
- より広い公開議論の観測には別途キャッシュタグ検索を使います。
関連リソース
Answer: 関連リソースとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.10/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。
免責事項
Answer: 免責事項とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.10/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。
このモニターは公開投稿を調査用に表示するものです。金融上の主張を評価するものではなく、投資助言でもありません。