og:imageにS3にアップロードした画像を指定した時に、
何故かLineでog:imageが表示されていなかったので原因を調べたら
Content-Type:image/jpeg
をS3オブジェクトのmeta情報に設定する必要がありました。(Content-Typeは適宜指定してください。)
その他検証時メモ
Lineに投稿すると
ユーザーエージェントが facebookexternalhit/1.1;line-poker/1.0
のクローラーがアクセスしてきた後にog:imageに設定したファイルに facebookexternalhit/1.1;line-poker/1.0
と Mozilla/6.0
からアクセスが来ているようでした。
203.104.145.38 - - [08/Dec/2017:05:16:17 +0000] "GET / HTTP/1.1" 200 10519 "-" "facebookexternalhit/1.1;line-poker/1.0" "-"
203.104.145.38 - - [08/Dec/2017:05:16:17 +0000] "GET /assets/hoge.png HTTP/1.1" 200 84437 "-" "facebookexternalhit/1.1;line-poker/1.0" "-"
203.104.145.59 - - [08/Dec/2017:05:16:17 +0000] "GET /assets/hoge.png HTTP/1.1" 401 195 "http://example.com/" "Mozilla/6.0" "-"
facebookexternalhit/1.1;line-poker/1.0
のipは 203.104.145.38
、Mozilla/6.0
は 203.104.145.59
で whois
コマンドでIPの所有者を調べたら両方共LINE Corporationが所有しているようでした。
開発サーバーで line-poker
はベーシック認証を回避する設定はしていましたが、 Mozilla/6.0
はベーシック認証で弾くようになっていたためかLineでog:imageは表示されませんでした。
line-poker
からも画像にアクセス自体はあったようですが、Lineアプリの方ではog:imageは表示されていませんでした。
推測するにLineのシステムは、記事情報を取得するクローラーと画像を取得するクローラーは別のプログラムが動いているのだろうと思われます。(しかし画像のクローラーのユーザーエージェントに Mozilla/6.0
とするのはベーシック認証をかけているテスト環境でOGPのテストがしずらいので、 facebookexternalhit/1.1;line-poker/1.0
を指定してもらえると助かります・・・)