テレグラムのメッセージが太字になると反応しない? 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(ICT THE BEST)建設的評価🐻‍❄️ 報告+1570pips/推測+491pips・確定損益+71万円の柔軟的検証(2026/1/6-1/9)
🌈 はじめに フォフォ、ほのぼのしろくまじゃ🐻‍❄️ 今回は、**SODA(ICT THE BEST)**配信者様の2026年1月6日~1月9日の週間シグナルを、建設的な視点で検証させていただくぞい。 この検証の目的は: ✨ 配信者様の努力と成長を応援する 📚 フォロワー様の学習機会を創出する 🔍 客観的なデータで透明性を高める 🌟 みんなで一緒に成長するコミュニティを築く 検証の透明性について: 本検証では1時間足のOHLCデータを使用した自動プログラムと、人間の建設的判断を組み合わせて分析しておるぞい。配信者様の裁量的なポジション管理やBE化などの高度なリスク管理は、1時間足データでは完全には捉えられないことをご理解くださいなのじゃ🙇 CSV データ制約について: 検証期間:2026/1/6-1/9(1/10のデータは未含) 時刻:JST(日本標準時) 対象通貨ペア:XAU/USD, EUR/USD, USD/CHF等(GBP/JPYは含まれず) 🌟 SODA配信者様の優秀な点 まずは、配信

続きを読む

【FX検証】SODA(CRT2nd)建設的評価🐻‍❄️ 報告+14.4R/推測値との照合・1時間足データとの整合性検証(2026/01/06-01/10)
【FX検証】SODA(MB FOREX)建設的評価🐻‍❄️ 報告425pips/推測131pips・確定+3.7万円/潜在+19万円の柔軟的検証(2026/1/5-1/9)
【FX検証】SODA(BD)建設的評価🐻‍❄️ 報告9シグナル成功/検証期間12シグナル・確定5件TP+継続4件利益の柔軟的検証(2026年1月5日〜11日)
【FX検証】SODA(TTT)建設的評価🐻‍❄️ 報告+2513pips/推測+27pips・報告+364万円/推測+5万円の柔軟的検証(2026/01/05-09)

「FX」記事をもっと見る