なぜInstagramのリンクがこのようなワンボックス表示になるのですか?

この例: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 タグが確認できます:

「いいね!」 1

無関係ですが、参考までに、Instagram が何かをまだ無効化しているため、Instagram 関連のコンテンツを含む投稿を数日ごとに再構築し続けています。詳細は Instagram oneboxing - #58 by Richie をご覧ください。

この oEmbed の変更で、18 ヶ月も続いているこの問題も解決するとは考えにくいですよね?

「いいね!」 3

さて、カスタム 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

上記のリンクは実際の画像にリダイレクトし、期限切れにならないため、理論的には画像の期限切れ問題を解決するはずです。

「いいね!」 7

これは技術的には Instagram の問題ですが、@techAPJ さん、解決策を見つけるためにこれほど尽力していただき感謝しています。

素晴らしいです!

本当にありがとうございます :+1:t2:

「いいね!」 3