前提
画像の指定には、「Twitter:image」ではなく、「og:image」を使っています。
OGP画像の差し替え
URIはそのままに、画像だけを差し替えたらエライ目に遭ったので、記録しておきたい。
端的に言ってしまえば、画像だけを差し替えても、Twitter側のキャッシュがそのままになってしまい、画像が一向に差し替わらないのだ。
調べてみると、Twitterのリンク(画像の変更等)が更新・反映されない⇒OGPのキャッシュクリアで解決のようなページが引っかかり、Card ValidatorというTwitterのサイトを使えば多少時間はかかっても1時間程度でキャッシュクリアがなされるように書いてあるが、こちらもアテにならない。
キャッシュクリアの操作(?)を行い、半日経ったが、表示される画像は古いもののままだ。
画像URLに日時クエリを追加する
Twitter公式のトラブルシューティングガイドによると、URL短縮サービス「bit.ly」に、URLにクエリ文字列を追加したものを短縮し、そこにアクセスすることでTwitter側に更新のヒントを与えることができる、というようなことが書いてあって、実行したが、効果はなかった。
また、「og:image」で指定している画像URLに日時クエリを追加することもやってみたが、特に効果はなかった。
これは例えば、画像URLを https://example.jp/img/ogp.png
からhttps://example.jp/img/ogp.png?1682035478
にするようなものだ。
最悪、最大7日待つしかない?
上記サイトには、「Twitter の Web クローラーは、およそ 7 日ごとにページのカード タグ情報を再インデックス化します。」(the web crawler re-indexes the meta information on your tag roughly every seven days.
)というようなことが書いてあり、最悪の場合は およそ
7日、再インデックス化を待たなければいけないようだ。
とりあえず新規画像が表示されるようにする方法
新規Tweet画面で、クエリインデックスを含むURLを記述すること。 https://example.jp/
がURLだとしたら、 https://example.jp/?1682035478
のような、「?」の後に適当な数字や文字なりを入れてしばらく待つ。これで新規画像が表示されたら、後はインデックスが更新されるのを待つしかない、と思われる。
結局、15時間後に更新された
20時に画像を差し替えて、翌朝8時の時点でまだ前の画像が表示されていましたが、
朝11時の時点でもう一度確認したら新しい画像が出てきました。
個人的なベンチマークとしては更新に必要な時間は「15時間」ということにしようと思います。