タグアーカイブ oEmbed

MetaがInstagram埋め込みのトークン要件を撤回、WordPressで復活

MetaがInstagram埋め込みのトークン要件を撤回、WordPressで復活

Metaは2026年6月15日、約6年前に導入したoEmbed APIのアクセストークン要件を撤回した。Instagram、Facebook、Threadsの投稿URLをWordPressに貼り付けるだけで埋め込み表示が可能になる。2020年10月にそれまで動いていた機能が突然使えなくなって以降、多くのサイト運営者が埋め込み手段を模索してきたが、ようやく以前の手軽さが戻った格好だ。

今回の方針転換に合わせて、Metaは公式WordPressプラグイン「Meta Embeds」も公開している。トークン管理不要で動作し、コードはGitHubで公開されている。本記事では技術的な変更点と実務への影響、そしてこの変更がカバーしない領域についても整理する。

2026年6月15日の変更内容

今回の発表でトークン不要となったのは、以下の4つのエンドポイントだ。

  • Threads oEmbed
  • Instagram oEmbed
  • Facebook oEmbed(投稿)
  • Facebook oEmbed(動画)

従来は、これらのエンドポイントを呼び出すためにMetaの開発者アカウント登録、アプリ作成、App Review申請、そして毎回のアクセストークン付与が必要だった。2026年6月15日以降は、URLさえあれば直接APIを叩ける。レスポンスの形式自体は以前と同じで、埋め込みHTML、プロバイダ名、幅、コンテンツタイプが返ってくる。

ただし2つの注意点がある。1つ目はレート制限だ。トークンレスアクセスはトークン付きのルートよりも呼び出し回数が制限される可能性があり、高頻度で埋め込みを行うサイトでは影響が出るかもしれない。2つ目は、エンドポイントがパブリックな投稿にしか対応しない点だ。非公開アカウントや限定公開の投稿は対象外となる。

従来の埋め込みフロー(Before)
開発者アカウント登録 → アプリ作成 → App Review申請 → アクセストークン発行 → API呼び出し
現在の埋め込みフロー(After)
URLを貼り付け → 埋め込み表示

この比較図からもわかるように、開発者向けの複雑な手続きが不要になった。個人ブログの運営者でも迷わずにMetaの投稿を埋め込めるようになっている。

元の変更が起きた経緯

元の変更が起きた経緯

2020年10月の衝撃

2020年10月、Metaは同社のoEmbedエンドポイントにアクセストークンを必須とする変更を発表した。WordPressにとってInstagramやFacebookのURLを貼るだけで埋め込みが表示される機能は標準装備だったが、この発表で状況は一変する。WordPressのコアチームは、数千万ものサイト運営者にトークン管理を要求することは現実的ではないと判断し、FacebookとInstagramをoEmbedプロバイダーから削除した。

すでに埋め込まれていた投稿は、WordPressがoEmbedレスポンスをデータベースにキャッシュしていたため表示が維持された。しかし新規の埋め込みは一切動作しなくなった。影響はWordPressサイト全体に及び、埋め込み機能を前提にしていたコンテンツ戦略を大きく狂わせた。

プラグイン市場への波及

この混乱に対応するため、JetpackはAutomattic社が保有するトークン経由でリクエストをプロキシする仕組みを急遽導入した。oEmbed Plusのようなサードパーティ製プラグインも登場し、一般のサイト運営者が自前でFacebook App IDとシークレットキーを生成して設定する手順を案内していた。

しかし多くの運営者はこれらの対策を取らず、埋め込み自体を諦めるか、API接続を内部で処理する専用プラグインに移行した。WP Mayorの記事によれば、この一件だけで「壊れたInstagram埋め込みを修正する」ためのコンテンツやツール群が一つのカテゴリを形成するほどだったという。

6年ぶりの方針転換の背景

Metaが2020年に掲げていた理由はプライバシーとセキュリティの強化だった。しかし今回の発表では「パブリックなMetaコンテンツの埋め込みを容易にする」という簡潔な説明にとどまっている。WP Mayorの著者Mark Zahra氏は、このタイミングでの撤回について「各プラットフォームがユーザーの注意を奪い合い、AIによる回答がリファラルトラフィックを侵食する中で、Metaが自社コンテンツを再びオープンウェブ上で流通させたいという意図が透けて見える」と分析している。

Metaが公式WordPressプラグインを公開

Metaが公式WordPressプラグインを公開

APIの方針転換と同時に、Metaは公式のWordPressプラグイン「Meta Embeds」をリリースした。ソースコードはGitHubで公開されており、オープンソースで開発が進められている。

このプラグインは、Threads、Instagram、Facebookの投稿URLをエディタに貼り付けるだけでリッチな埋め込みを表示する。設定画面はなく、トークンも不要。ブロックエディタとクラシックエディタの両方に対応している。Metaが自社製のWordPressプラグインを公式リポジトリに直接公開するのは異例の動きだ。

プラグインのReadmeに含まれるFAQには、今後の展開をうかがわせる記述がある。このプラグインは、WordPressのバージョンがすでにThreadsのoEmbedプロバイダーを登録しているかどうかをチェックし、重複登録を回避する仕様になっている。WP Mayorの記事は、この実装を「Metaの埋め込み機能がWordPressコアに再統合される布石」と見ており、今後のWordPressリリースでInstagramとFacebookのネイティブ埋め込みが復活する可能性に注目すべきだと指摘している。

プラグインなし Instagram URLを貼り付けても、WordPressコアがoEmbedプロバイダー非対応のため素のURLが表示されるだけ
Meta Embeds 有効 同じURLがリッチな埋め込み表示に変換される。写真、キャプション、投稿者名が自動で展開

Meta Embedsプラグインを有効化するだけで、これまで埋め込みが動作しなかった環境でも即座に表示が改善する。WordPressコアへの統合が実現すれば、プラグインすら不要になる可能性もある。

今回の変更が影響しない領域

今回の変更が影響しない領域

oEmbedは単一投稿のAPIである

「トークンレスになったならInstagramフィードプラグインは不要では」という見方が一部で出ているが、それは誤解だ。oEmbedはあくまで1つの公開投稿URLを受け取り、その1投稿の埋め込みコードを返すAPIに過ぎない。

アカウントの最新投稿一覧を取得する機能、ハッシュタグフィード、ストーリーズの表示、自動更新といった機能は、oEmbedでは提供されない。これらは従来通りInstagram Graph APIを使い、アクセストークンによる認証が必要となる。

ブログ記事の中に特定のInstagram投稿を1つだけ埋め込みたいケースでは、今回の無料ルートが再び使えるようになった。逆に、サイトのトップページに最新のInstagram投稿を自動表示したい場合、レイアウトやフィルタリング、モデレーション機能も含めて、Instagramフィード専用プラグインの出番は変わらない。

フロントエンドでのスクリプト読み込みとプライバシー

もう1つ理解しておくべき違いは、oEmbedから返される埋め込みHTMLの動作だ。MetaのoEmbedは、投稿をレンダリングするためにMetaのJavaScriptを訪問者のブラウザに読み込む。Meta EmbedsプラグインのReadmeにも、フロントエンドでのレンダリングはMetaのプライバシーポリシーに準拠すると明記されている。

これは、Metaのスクリプトを一切読み込まずにコンテンツをネイティブ表示するソリューションとは性質が異なる。EU圏のクライアント向けにサイトを構築している場合、GDPRの観点からこの違いは重要だ。埋め込みを有効にする前に、プライバシーポリシーとの整合性を確認しておく必要がある。

実務者への実践ガイド

実務者への実践ガイド

ドキュメントとナレッジベースの更新

Instagram埋め込みにトークンやMetaアプリが必要だと説明しているコンテンツやドキュメントは、2026年6月15日以降は誤りとなった。WP Mayor自身も自社アーカイブの監査を進めていると述べており、チュートリアル記事や社内マニュアルを保有している場合は速やかな見直しが求められる。

クライアントサイトでの対応

クライアント向けにWordPressサイトを構築している場合、単発のMeta投稿埋め込みは開発者向けのセットアップなしで利用可能になった。Meta Embedsプラグインを導入すればすぐに動作する。WordPressコアへの統合が進めば、近い将来プラグインすら不要になる可能性も視野に入れておきたい。

Instagramフィードプラグインの利用者

既存のInstagramフィードプラグインを使用しているサイトには、今回の変更は一切影響しない。フィード機能はInstagram Graph APIに依存しており、oEmbedのトークン要件撤廃とは無関係だ。不安があればプラグインの開発元に確認するのが確実だが、WP Mayorの記事ではRebelCode社が開発するSpotlight Instagram Feeds(6万以上のアクティブインストールを誇る高評価プラグイン)を含め、APIベースのフィードソリューションはすべて影響を受けないと明言されている。

この記事のポイント

  • Metaが2026年6月15日、oEmbed APIのトークン必須化を撤回。Instagram、Facebook、Threadsの埋め込みがURL貼り付けだけで動作する
  • 併せて公式WordPressプラグイン「Meta Embeds」をリリース。コードはGitHubで公開され、WordPressコアへの統合も視野に入っている
  • oEmbedは単一投稿APIであるため、アカウントの最新フィード表示やストーリーズ機能は従来通りAPIトークンが必要。Instagramフィードプラグインの役割は変わらない
  • 埋め込み表示にはMetaのJavaScriptが読み込まれるため、GDPR対応が必要なサイトではプライバシーポリシーとの整合性確認が欠かせない
PHP 8.5でCannot use bool as array警告が出る原因と直し方

PHP 8.5でCannot use bool as array警告が出る原因と直し方

PHP 8.5 環境の WordPress 7.0 で「Cannot use bool as array」の警告が出るのは、oEmbed レスポンスが想定する配列ではなく false(真偽値)を返し、それを配列として処理しようとした型エラーです。コード改修に踏み切らなくても、`oembed_response_data` フィルタで安全性を担保する一時回避が有効です。

PHP 警告の原因は何か「Cannot use bool as array」

PHP 警告の原因は何か「Cannot use bool as array」

この警告は `wp-includes/embed.php` 742 行目付近、oEmbed レスポンスを iframe 埋め込みコードに加工するフィルタ処理で出ています。もともと配列が入る想定の変数に真偽値 `false` が入り、その要素にアクセスして停止するパターンです。

外部 oEmbed プロバイダへの通信失敗、エンドポイントの一時停止、クラウドや CDN 経由のキャッシュが古い応答を返した場合などに起きます。WordPress コアの型チェックがまだ強化しきれていない箇所で、PHP 8.5 の厳格な型チェックとぶつかったものです。投稿本文に貼られた Twitter / YouTube / Vimeo 等の埋め込みが読み込まれるたびに断続的に発生します。

なぜ PHP 8.5 で特に出やすいのか

PHP 8.0 以降、型の不一致に対する警告やエラーが段階的に強化されています。8.5 では false 値を直接配列の添字アクセスに使おうとすると通らなくなり、今回のような「発生条件がまれで、一度に複数回出る」断続的な警告になります。

エラー箇所をサーバーエラーログで特定する手順

コード編集せずに一時回避する方法

まずログを正確に把握します。レンタルサーバーの管理画面やコントロールパネルから PHP エラーログを確認しましょう。ログには `/wp-includes/embed.php` の行番号と `Cannot use bool as array` の文言が残っています。

エラーログの外観イメージ(Before / After 比較)
Before
PHP Warning: Cannot use bool as array in …/wp-includes/embed.php on line 742
After(特定後)
oembed_response_data フィルタ原因を特定 → 一時回避策を適用

上のデモはエラーログに現れる典型的な記録と、原因特定後の流れを示しています。ログ内で同じ秒に 3 回出現したという報告もあるように、1 件の埋め込みが複数のインスタンスを生む場合があります。

コード編集せずに一時回避する方法

今すぐ警告を止めたい場合は、テーマの functions.php やサイト専用のプラグインに以下の `add_filter` を追加します。これは oEmbed レスポンス加工の入り口で変数が配列であることを確かめ、配列でなければ空の配列を返す安全策です。

add_filter( 'oembed_response_data', function( $data ) {
    if ( ! is_array( $data ) ) {
        $data = array();
    }
    return $data;
}, 0 );

上記はコアファイルを触らず、フィルタ段階で致命的な型エラーを封じます。本来 WordPress が返すはずの埋め込みは表示されませんが、警告の発生そのものは止まり、画面の上部にエラー文言が出る状況を解消できます。

functions.php に記述する際の注意

  • 子テーマの functions.php に必ず追記する(親テーマ直編集は更新で消える)
  • コードスニペット系プラグイン(WPCode 等)を使うと管理が楽になる
  • 記述後はサーバーの OPCache やプラグインキャッシュをクリアする

根本対応としての oEmbed プロバイダ見直し

外部 oEmbed の呼び出しに失敗している場合、根本的には該当 URL が貼られた投稿を編集し埋め込み形式を変えるのが一番です。エンドポイントが停止したサービスや、TLS 設定が古いプロバイダを指しているときにも警告が出ます。

特定の URL パターンだけ埋め込みを無効化したい場合は、`oembed_discovery_links` フィルタやキャッシュ期間を変える方法も検討できます。社内のプライベートクラウド上にある独自メディアサーバーを oEmbed で呼んでいる場合などは、ネットワーク設定や HTTP タイムアウトの調整も必要です。

よくある質問

コアファイルを直接修正してもよいのか

コアの embed.php を修正するとアップデートで上書きされるため、現実的ではありません。どうしても早期にパッチしたい場合も、WordPress コアの Trac に報告する形が安全です。上書きリスクを避けるため、必ずフィルタで対処しましょう。

警告は出ているが埋め込みは見えている場合の対処は

画面に埋め込みは表示されるがデバッグログだけ警告が出る状態なら、前述の `is_array()` チェックを入れたフィルタでログ汚染を防げます。ただし埋め込みが正しく機能しているなら、根本原因(特定の URL の一時的応答失敗)が解消されるのを待つだけでも構いません。

PHP 7.x に戻すのは対策になるか

PHP のバージョンを下げると表面的に警告が消える可能性はありますが、セキュリティ面で大きなリスクがあります。PHP 8.5 環境のままで、WordPress とプラグインを最新に保ちながらフィルタで予防する方向が安全です。

WordPress 7.0 のアップデートでこのエラーが起きた可能性は

WP 7.0 固有の不具合というより、PHP 8.5 との組み合わせで型チェックが厳しくなった影響です。特に大きなリファクタリングが行われたコア部分で、今まで隠れていた型不一致が警告として顕在化している状況です。

埋め込みをすべて無効にする設定はあるか

完全に oEmbed 機能を止めるには `remove_action` で関連フックを外す方法もあります。ただし、既存の埋め込み投稿の見栄えが大きく変わるため、テスト環境で事前検証する必要があります。

この記事のポイント

  • PHP 8.5 と WP 7.0 の型不一致が原因で oEmbed 処理中に「Cannot use bool as array」警告が発生する
  • 即効の回避策は `oembed_response_data` フィルタで `is_array()` チェックを追加すること
  • コアファイルの直接修正は避け、子テーマの functions.php または専用プラグインで管理する
  • 外部 oEmbed プロバイダの応答エラーが根本原因の場合、該当 URL の見直しやキャッシュ設定の再考も検討する