X(Twitter)タイムラインがWordPressに埋め込めない問題をChatGPTと徹底調査した結果

執筆者:

カテゴリ:

投稿日:

更新日:


はじめに

このホームページにX(旧Twitter)のタイムラインを埋め込もうとしたところ、公式の埋め込みコードを使用してもタイムラインが表示されず、

「Posts by ○○」というリンクだけが表示される

という現象が発生しました。

最初はWordPressの設定ミスを疑いましたが、原因が分からなかったため、ChatGPT(GPT-5.5)に調査を依頼し、一緒に原因を一つずつ切り分けていくことにしました。

数時間にわたり、WordPress・Apache・HTML・JavaScript・ネットワーク・XのAPIまで順番に確認した結果、原因はX(旧Twitter)側の埋め込みサービスにある可能性が極めて高いという結論に至りました。

同じ症状で困っている方の参考になればと思い、調査内容をまとめます。


環境

  • WordPress 7.0.1
  • テーマ:Twenty Twenty-Five
  • サーバー:Ubuntu 24.04
  • Apache 2.4.64
  • PHP 8系
  • HTTPS(Let’s Encrypt)

使用した埋め込みコード

X公式(publish.x.com)が生成したコードをそのまま使用しました。

<a class="twitter-timeline"
href="https://x.com/kagaku_info?ref_src=twsrc%5Etfw">
Posts by kagaku_info
</a>

<script async src="https://platform.x.com/widgets.js"
charset="utf-8"></script>

症状

表示されるのは

Posts by kagaku_info

というリンクだけです。

クリックするとXのプロフィールは正常に表示されますが、タイムラインは埋め込まれません。


ChatGPTと一緒に原因を切り分ける

ChatGPTからは

「WordPressではなく、まず最小構成で試しましょう。」

という提案がありました。

そこで、WordPressを疑う前に、原因を一つずつ消していくことにしました。


① WordPressを疑う

通常の段落ブロックではなく、

カスタムHTMLブロック

で公式コードを貼り付けました。

結果

改善せず。


② widgets.jsを確認

Chrome DevTools の Network を確認すると

https://platform.x.com/widgets.js

は

200 OK

でした。

つまりJavaScript自体は正常に読み込まれています。


③ JavaScriptエラーを確認

Consoleには

JQMIGRATE: Migrate is installed

しか表示されません。

JavaScriptエラーはありませんでした。


④ WordPressを完全に除外

ChatGPTから

「WordPressを使わないHTMLだけでも試しましょう。」

と提案されたため、

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>X Test</title>
</head>
<body>

<a class="twitter-timeline"
href="https://x.com/OpenAI">
Posts by OpenAI
</a>

<script async src="https://platform.x.com/widgets.js"></script>

</body>
</html>

という test.html を作成しました。

結果は

WordPressを使わなくても同じ症状でした。

ここで

WordPressは原因ではない

ことが分かりました。


⑤ Apacheを疑う

続いてChatGPTから

「HTTPレスポンスヘッダーを確認しましょう。」

という提案がありました。

確認したところ

  • Content-Security-Policy
  • X-Frame-Options
  • Cross-Origin-Embedder-Policy

などは一切設定されていません。

Apache設定も確認しましたが、

iframeをブロックする設定はありませんでした。

ここで

Apacheも原因ではない

ことが分かりました。


⑥ ネットワークを変更

さらに

  • スマホ4G/5G
  • スマホテザリング
  • VPNあり
  • VPNなし

で確認しました。

結果は

すべて同じ。


⑦ OpenAI公式アカウントでも試す

ChatGPTから

「OpenAIなど別アカウントでも試してください。」

という提案がありました。

結果は

OpenAIでも同じ症状。

つまり

アカウント固有の問題ではありませんでした。


決定的な証拠

ChatGPTから

「Networkで syndication.twitter.com を確認してください。」

と指示されました。

すると

https://syndication.twitter.com/srv/timeline-profile/...

が

429 Too Many Requests

を返していました。

つまり

widgets.js
      ↓
syndication.twitter.com
      ↓
429
      ↓
iframe生成失敗

という流れになっていたのです。

これが

タイムラインが表示されない直接の原因

でした。


X Developer Communityでも確認

ChatGPTに最新情報を調査してもらったところ、

X Developer Communityには

  • widgets.jsは正常
  • timelineだけ表示されない
  • syndication.twitter.com が429
  • コードは変更していない

という報告が複数ありました。

つまり

今回だけの現象ではありません。


結論

今回の調査では

  • WordPress
  • HTML
  • Apache
  • HTTPS
  • JavaScript
  • ネットワーク
  • スマートフォン
  • VPN

まで一つずつ切り分けました。

その結果、

https://syndication.twitter.com/srv/timeline-profile/

が

429 Too Many Requests

を返していることを確認しました。

現時点では、

WordPressやApacheではなく、X(旧Twitter)側の埋め込みサービスに原因がある可能性が極めて高い

と判断しています。


ChatGPTを使って感じたこと

今回の調査では、ChatGPTは「答えを決めつける」のではなく、

  • 仮説を立てる
  • 一つずつ検証する
  • 結果に応じて仮説を修正する

という形で、まるで一緒にデバッグを行うパートナーのように調査を進めることができました。

途中で「WordPressではない」「Apacheでもない」といった結論も、実際の検証結果に基づいて修正しながら進められたため、最終的にはX側の埋め込みサービスが429を返しているという技術的な根拠までたどり着くことができました。

AIは万能ではありませんが、人間が検証を行い、AIが次の切り分け手順を提案するという進め方は、トラブルシューティングにおいて非常に有効だと実感しました。


とりあえず

X(旧Twitter)とInstagram(インスタグラム)へのリンクはフッダーに付加してあります。

また、埋め込みの試験をTESTで行っています。

もし、Xのタイムラインの埋め込みがうまくいっている人がいらっしゃったらコメント欄からでも教えてください。

コメント

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です