renato
(Renato Atilio)
1
以前に議論されたかもしれませんが、IGTV リンクの一括表示(oneboxing)サポートはロードマップに含まれていますか?
https://www.instagram.com/tv/ID/ のような IGTV リンクを使用しようとすると、このトピック で説明されているような応答が返されます。
https://www.instagram.com/tv/CIlKL1OBwE0/?hl=pt-br
このリンクを cURL で取得すると、og:image、og:description、og:video などのメタデータが含まれています。
簡単に確認したところ、この URL は Instagram の oneboxing エンジンではサポートされていないようです。
よろしくお願いいたします。
「いいね!」 3
これでも動きますか、@jamie.wilson さん?
「いいね!」 2
現状では、IGTV リンクは汎用 oneboxer を経由して処理されます。これにより、特定のサイトからの最初の数回のリクエストについては(おそらく)機能するでしょう。しかし、少数のリクエスト後、IG はそれらのリクエストをログイン画面にリダイレクトするようになります(おそらく)。これが @renato 氏が目にしている現象です。
@renato 氏が指摘している通り、現在の IG onebox エンジンは IGTV 形式のリンクを処理するように設定されていません。これに対応するため、私は PR を作成しました:
これにより、IG onebox エンジンは公式の IG oEmbed エンドポイントを通じて IG TV URL を取得します。アクセストークンを設定している場合、onebox URL のリクエストがログイン画面にリダイレクトされることはなくなるはずです。
(この onebox PR には onebox のバージョンアップが必要であり、その後、Discourse コア内の Gemfile の更新が必要です。)
「いいね!」 6
renato
(Renato Atilio)
5
ありがとう、皆さん最高です!
一つアイデアですが、返された og:video(secure_url、type、width、height を含む)を活用して、generic engine のように動画プレーヤーを表示することはできないでしょうか?
Instagram の oEmbed API エンドポイントを使用していますが、このエンドポイントはメディアタイプや動画ファイルの URL、あるいは埋め込みプレーヤーを含むワンボックスを構築するために必要な他の有用な情報を返しません。
ページに直接アクセスすればこれらのメタデータが含まれていますが、認証なしでそれを数回以上実行すると、リモート側で認証を要求する状態がトリガーされるようです。そのため、最初の投稿にあるリンクはログインページを指しています。
ワンボックス化に関しては、現時点では IGTV リンクに対してできることがかなり限られているようです。
「いいね!」 4
renato
(Renato Atilio)
7
oEmbed API を使用すると html 属性が返されますが、この返された html を活用しようとする 古い議論 があり、結局は現在の解決策に近い方向へ進んでいました。
現在のアプローチの方がクリーンで安全だと理解していますので、コア機能として維持するのは理にかなっています。
現時点では特に必要としていませんが、もし必要になった場合、この「公式」な Instagram 埋め込みを利用するカスタムプラグイン(固定の高さを強制し、コアの解決策にフォールバックするもの)を作成することは可能でしょうか?同じ matches_regexp を持つ別の Onebox エンジンを追加できますか、それとも Onebox::Engine::InstagramOnebox をモンキーパッチすることを試みるべきでしょうか?
よろしくお願いいたします。
priority を使用すると、特定の URL にどのエンジンがマッチするかを制御できます。
また、RedditMediaOnebox のアプローチにもご注目ください。これはカスタム HTML を返そうとしますが、特定の type の結果を処理する方法がわからない場合は、汎用的な onebox にフォールバックします。
「いいね!」 4