テレグラムのメッセージが太字になると反応しない? APIの最新ドキュメントに基づいて修正を試みる。

テレグラムのmessageの処理において、太字など装飾がされていた時に読み取りできない問題に対処する方法を検討しているところです。

テレグラムAPIから受け取るメッセージのフォーマットを正確に処理するためには、メッセージ内の書式情報(エンティティ)を正確に解析し、必要に応じてMarkdown形式に変換していたのですが、今回の検証により、以前のコードが太字(bold)のエンティティを正しく処理できていなかったことが判明しました。

この記事では、この問題を修正するために最新のテレグラムAPIドキュメントを紹介し、コーディングついても言及したいと思います。

最新のテレグラムAPIドキュメントの特徴

テレグラムAPIは、メッセージの取得と解析において、さまざまなフォーマット情報を提供しています。最新のドキュメントによると、以下のような特徴があります:

  1. エンティティ情報の拡充: テレグラムAPIは、メッセージ内のテキストに対して詳細な情報を提供します。これには、bold(太字)、italic(斜体)、underline(下線)、strikethrough(取り消し線)、code(コードブロック)など、複数の書式タイプが含まれています。これにより、メッセージのフォーマットを正確に再現することが可能です。
  2. エンティティのネストと重複の処理: 最新のAPIは、エンティティのネスト(入れ子構造)や重複をサポートしています。たとえば、太字と斜体が同じテキストに適用されている場合、それを正確に再現するための情報が提供されます。
  3. 統一されたメッセージフォーマット: テレグラムAPIは、メッセージに関する情報を統一された形式で提供し、エンティティのオフセットと長さ(length)に基づいてテキストを操作することができます。これにより、テキストの一部に対してさまざまなスタイルを適用することが容易になります。
  4. 高度なメッセージ操作のサポート: 最新のテレグラムAPIは、メッセージの編集、削除、返信といった操作もサポートしています。

最新バージョンのコード修正

以下に、最新のテレグラムAPIドキュメントを参照して修正したコードを示します。このコードは、エンティティ情報を正確に解析し、太字やその他の書式をMarkdown形式で適切に反映させることができるようになっています。

一部抜粋※

def extract_formatted_text(self, message):”””メッセージの書式情報を使用してテキストを抽出し、Markdownとしてフォーマットする”””
if ‘text’ in message:
text = message[‘text’]
if ‘entities’ in message:
entities = message[‘entities’]
formatted_text = “”
last_offset = 0

for entity in entities:
offset = entity[‘offset’]
length = entity[‘length’]

# 書式なしのテキスト部分を追加
if last_offset < offset:
formatted_text += text[last_offset:offset]

# 書式付きのテキストを追加
entity_text = text[offset:offset + length]
if entity[‘type’] == ‘bold’:
formatted_text += f”**{entity_text}**” # 太字用のMarkdown記法
elif entity[‘type’] == ‘italic’:
formatted_text += f”_{entity_text}_” # 斜体用のMarkdown記法
elif entity[‘type’] == ‘underline’:
formatted_text += f”<u>{entity_text}</u>” # 下線用のHTML記法(Markdownには下線記法がないため)
elif entity[‘type’] == ‘strikethrough’:
formatted_text += f”~~{entity_text}~~” # 取り消し線用のMarkdown記法
elif entity[‘type’] == ‘code’:
formatted_text += f”`{entity_text}`” # コード用のMarkdown記法
else:
formatted_text += entity_text # 他の書式はそのまま

last_offset = offset + length

# メッセージの最後の部分を追加
formatted_text += text[last_offset:]
return formatted_text
else:
return text # エンティティがない場合はそのまま返す
return ”

def process_message(self, message):
try:
message = message.upper().replace(“\n”, ” “)
print(“Processed message:”, message)

signals = []


改善内容の要約

  1. エンティティ処理の強化: 太字や斜体だけでなく、下線、取り消し線、コードブロックなどの他の書式も適切に処理するように改善しました。
  2. フォーマット情報の正確な適用: 各エンティティのオフセットと長さを正確に計算し、テキストの全範囲に適用しました。
  3. 最新のテレグラムAPIへの対応: 最新のAPIドキュメントを参照し、変更点を反映させることで、より信頼性の高いメッセージ処理を実現しました。

結論

これらの改善により、テレグラムからのシグナル取得とフォーマット処理がより正確かつ効率的になりました。この新しいコードバージョンは、最新のテレグラムAPIに完全に対応しており、取引戦略の実行において重要なリアルタイムシグナルの処理をより信頼性の高いものにします。これにより、トレーダーは市場の動きをリアルタイムで捉え、迅速かつ正確な意思決定を行うことが可能となります。

FX

【FX検証】SODA(CRT2nd) 建設的評価 🐻‍❄️ 報告135pips vs 推測797pips超・SLトレーリング戦略の柔軟検証(2026年3月9日〜16日)
フォフォ、ほのぼのしろくまじゃ🐻‍❄️ 今回はSODA(CRT2nd)のシグナルを性善説でじっくり検証するのじゃ。数字の裏に隠れた「配信者の意図」を読み解きながら、建設的に評価していくぞい。 1. はじめに 🌈 本記事は、Telegram上で活動するFXシグナル配信者「SODA(CRT2nd)」の2026年3月9日〜16日のシグナルを、実際の市場データ(1時間足CSV・JST基準)と照合して検証した建設的評価レポートじゃ。 検証の目的 配信者の成長支援:良い点を最初に認め、改善の方向性を「あえて言うならば」で提示 フォロワーの学習機会創出:シグナルの読み方、ポジション管理の実際を学ぶ 性善説アプローチ:数字の不一致は「失敗」ではなく「手法の特性」として解釈 検証対象 項目 内容 配信者 SODA(CRT2nd) 検証期間 2026年3月9日〜16日(Telegramログ基準) 市場データ 1時間足OHLC(JST基準・XAU/USD・EUR/USD・GBP/USD)

続きを読む

【FX検証】SODA(TTT)建設的評価🐻‍❄️ 報告+1,356pips/推測+67pips・報告+196万円/推測+10万円の柔軟的検証(2026年2月9日-15日)
【FX検証】SODA(ICT THE BEST)建設的評価🐻‍❄️ 検証可能3件で100%TP1到達✨データ制約下での優秀なリスク管理(2/10-2/13)
【FX検証】SODA(ICT THE BEST)建設的評価🐻‍❄️ 報告+1570pips/推測+491pips・確定損益+71万円の柔軟的検証(2026/1/6-1/9)
【FX検証】SODA(CRT2nd)建設的評価🐻‍❄️ 報告+14.4R/推測値との照合・1時間足データとの整合性検証(2026/01/06-01/10)

「FX」記事をもっと見る