この例:https://www.instagram.com/p/CAoumaVgDXn/
https://www.instagram.com/p/CAoumaVgDXn/
https://opengraphcheck.com/result.php?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FCAoumaVgDXn%2F では何も表示されません。
しかし、問題の Instagram ページのソースコードを表示すると、実際に OG タグが確認できます:
この例:https://www.instagram.com/p/CAoumaVgDXn/
https://www.instagram.com/p/CAoumaVgDXn/
https://opengraphcheck.com/result.php?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FCAoumaVgDXn%2F では何も表示されません。
しかし、問題の Instagram ページのソースコードを表示すると、実際に OG タグが確認できます:
無関係ですが、参考までに、Instagram が何かをまだ無効化しているため、Instagram 関連のコンテンツを含む投稿を数日ごとに再構築し続けています。詳細は Instagram oneboxing - #58 by Richie をご覧ください。
この oEmbed の変更で、18 ヶ月も続いているこの問題も解決するとは考えにくいですよね?
さて、カスタム Instagram onebox エンジンhttps://github.com/discourse/onebox/blob/2347d63d402856c81d5fab48a7a06a4b3fc5c52a/lib/onebox/engine/instagram_onebox.rbを、Instagram ページの OpenGraph タグをスクレイピングする代わりに、公式のoEmbedエンドポイントを使用するように更新しました。これで非常にうまく動作しています:
https://www.instagram.com/p/CAlLWw-lU3S/
ただし、Instagram の oEmbed データにはメディアの種類が示されていないため、以下の 2 つの点で後退しています:
しかし、公式の oEmbed エンドポイントを使用する利点は、ランダムに機能しなくなることはなく、長期的に安定していることです。
その通りです。Instagram は、限られた期間のみ有効となるように設計された(タイムスタンプ付きの)期限付き画像リンクを提供しています。これを緩和するため、画像 URL にはこのタイプのリンクを使用するようにしました:https://www.instagram.com/p/CAlLWw-lU3S/media/?size=l
上記のリンクは実際の画像にリダイレクトし、期限切れにならないため、理論的には画像の期限切れ問題を解決するはずです。