このガイドが最初に書かれてから後の重要な更新:
-
アプリレビューが必須になりました。 2021年9月以降、Metaはアプリが App Review を通過し、oEmbed Read 権限(2025年4月8日以降に作成されたアプリでは Meta oEmbed Read と呼ばれます)の承認を受けることを義務付けています。これがないと、oEmbed API呼び出しは失敗します。承認を得るためのヒントについては、Metaの App Review提出ガイダンス を参照してください。
-
Instagramのoneboxが正しくレンダリングされない可能性があります。 2025年11月3日現在、MetaはInstagramのoEmbedレスポンスから
thumbnail_url、thumbnail_width、thumbnail_height、author_nameのフィールドを削除しました。DiscourseのInstagram oneboxコードは現在これらのフィールド(lib/onebox/engine/instagram_onebox.rb)に依存しているため、埋め込みが壊れたり空になったりする可能性があります。 -
投稿(post)とIGTVのURLのみがサポートされています。 現在、Discourseがoneboxできるのは、Instagramの
/p/(投稿) および/tv/(IGTV) のURLのみです。リール (/reel/) のURLはサポートされていません。 -
Facebook開発者コンソールのUIが変更されました。 以下のスクリーンショットは2020年12月に撮影されたものですが、UIは大幅に変更されています。基本的な手順は似ていますが、正確な画面やオプションは異なる場合があります。
すでにDiscourseサイトに関連付けられているFacebookアプリをお持ちの場合は、FacebookアプリへのoEmbedの追加まで下にスクロールしてください。
Facebook開発者アカウントとFacebookアプリをお持ちでない場合:
https://developers.facebook.com/ にアクセスします。現在ログインしていない場合は、Facebookアカウントでログインするように求められます。以前にアカウントを開発者アカウントに「移行」していない場合は、移行を求められることがあります。電話番号を追加したり、その他の手順を完了したりして、Facebookでアカウントを確認するよう求められる場合があります。プロンプトに従って、Facebookが要求する操作を実行する必要があります。
Facebook開発者アカウントが作成できたら、Facebook開発者のホーム画面から「マイアプリ」をクリックします。
…そして「アプリを作成」をクリックします。
アプリのタイプとして「その他」を選択し、「続行」をクリックします。
「アプリ表示名」と「アプリの連絡先メールアドレス」を入力します。利用規約とポリシーを読んだ後、「アプリを作成」をクリックできます。
ロボットの場合: ここには見るものはありません。ビープ、ボープ、ブープ。![]()
ロボットでない場合: 「私はロボットではありません」をクリックし、プロンプトに従い、「送信」をクリックします。
おめでとうございます!Facebookアプリが作成されました!
FacebookアプリへのoEmbedの追加:
製品のリストの一番下までスクロールし、「oEmbed」を見つけて「設定」をクリックします。
oEmbed製品の使用方法に同意する場合は、チェックボックスをクリックし、「確認」をクリックします。
oEmbed製品が追加されました。「設定」をクリックします。
「表示名」と「連絡先メールアドレス」はすでに記入されているはずです。「プライバシーポリシー」と「利用規約」のURLを入力する必要があります。利用可能なオプションのリストから「カテゴリ」を選択します。すべてに満足したら、「変更を保存」をクリックします。
画面上部のトグルをクリックして、「開発中」モードから「ライブ」モードに切り替えます。
「モードを切り替え」をクリックします。
アプリのレビュー申請(2021年以降必須):
アプリが本番環境でoEmbed APIにアクセスできるようになる前に、アプリレビューに提出し、oEmbed Read 権限(2025年4月8日以降に作成されたアプリの場合は Meta oEmbed Read)をリクエストする必要があります。
- アプリのダッシュボードで、アプリレビュー → 権限と機能 に移動します。
- oEmbed Read (または Meta oEmbed Read) を見つけて、「リクエスト」をクリックします。
- リクエストボタンがアクティブになる前に、テストAPI呼び出しを正常に行う必要がある場合があります。最初のAPI呼び出しから最大24時間かかることがあります。
- 提出する際は、Discourseサイト上のInstagram埋め込みを含むURLを提供し、サイトがoEmbed APIを使用してInstagramの投稿を埋め込むために Discourse フォーラムソフトウェアを使用していることを説明します。
詳細な提出ガイドラインについては、Metaの oEmbedドキュメント を参照してください。
アプリアクセストークンの生成:
すべて完了したら、Facebookの手順に従ってアプリアクセストークンを生成できます。アプリアクセストークン を参照してください。「アプリ ID」フィールドの値と「アプリのシークレット」フィールドの値をコピーする必要があります。アプリのシークレットを取得するには、「表示」をクリックします。再認証などを求められることがありますが、コピーできる長い16進数の値が表示されるはずです。
Facebookのドキュメントに従い、これらの値をFacebookに送信してトークンを生成する必要があります。curl の使用に慣れていますか?素晴らしい!彼らは以下を提案しています({your-app-id} と {your-app-secret} を上記画面でコピーした値に置き換えてください)。
curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"
あるいは、その2つの値を置き換えた後のURLだけをブラウザにコピーしても機能するはずです。
https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials
Facebookは、以下のような例のような小さなJSONの塊で応答します。
{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}
引用符を除いた access_token の値をコピーし(私の例では 1234567890654321|c3bd55c09fc5e561552ad7a8717 となります)、Discourseサイトの [設定] に移動します。Onebox設定にある facebook_app_access_token というサイト設定を見つけます。「access_token」の値をこのフィールドに貼り付けます。
をクリック…これで完了です!
サイトの投稿に https://www.instagram.com/p/CIRhYzFM7Lu/ のようなURLを貼り付けると、以下のような素敵なoneboxが表示されるはずです。

























