LINEには去年末から「URLプレビュー」という機能が追加されています。
タイムラインにリンクを載せたり、トーク画面でWEBページのURLを書き込むと、自動的にそのサイトの画像と内容をプレビュー表示してくれます。一見便利なんですが「なんでその写真を選ぶ?」と首をかしげるモノが表示されることがあります。
上記の写真もその一例。リンクしたブログ記事にはきちんとアイキャッチ画像が設定され、他にもいくらでも写真が載せられているのにもかかわらず、何故か記事とは無関係のロゴ画像がデデーンと引き伸ばされて引用されています。なんなの。
そこで、LINEがどうやってWEBページのプレビュー情報を取得しているのかを調べてみることにしました。うまく行けばセンスの無いLINEの写真チョイスを、ユーザー側である程度コントロールすることが出来るのかもしれません。
まずは複数の画像を載せた仮のWEBページを作ってみます。
ここにアクセス元情報を解析して結果をメール送信するphpコードを書き加えます。
<?php //アクセス解析 $referer = @$_SERVER['HTTP_REFERER']; //リファラー取得 $software = @$_SERVER['SERVER_SOFTWARE']; //サーバーソフトウェア取得 if (strpos($software, "nginx") === FALSE) { $remoteAddr = @$_SERVER['REMOTE_ADDR']; //リモートアドレス取得 } else { $remoteAddr = @$_SERVER['HTTP_X_FORWARDED_FOR']; } if ($remoteAddr) { //リモートホスト取得 $remoteHost = gethostbyaddr($remoteAddr); } else { $remoteHost = $remoteAddr; } //解析結果テキスト生成 $logTxt = ""; $logTxt .= date('Y/m/d H:i:s').","; //日時記録 $logTxt .= $remoteHost .","; //リモートホスト記録 $logTxt .= @$_SERVER['HTTP_USER_AGENT']."\r\n";//ユーザーエージェント記録 //解析結果をメールで送信 mb_language("Japanese"); //言語指定 mb_internal_encoding("UTF-8"); //エンコード指定 mb_send_mail("送信先メールアドレス", "アクセス解析結果", $logTxt, "From: 発信元メールアドレス"); ?> <!-- ↓ここから通常のHTML --> <html> <head> <title>テスト1</title> </head> <body> <h1>テスト1</h1> <img src="test1.png"><br> LINEのサムネイル表示テスト<br> <img src="test2.png"><br> <br> <img src="test3.png"><br> </body> </html>
んで、このファイルをサーバーにアップロードしてLINEの投稿画面にURLを書き込めば、WEBの内容を拾いに来たLINEのクローラーロボットが網にかかるんじゃないかという作戦です。
URLを入力して、確認ボタンをポチッとな。
お、ちゃんと1番最初の画像を拾ってますね。
そしてアクセス解析結果もメールで飛んできました、どれどれ?
ファッ?! フェイスブックのクローラーロボットが網にかかってる?!
クローラーロボットが申告しているURLを開くと確かにフェイスブックのクローラー説明画面が出ますが・・・
アクセス元のIPをwhoisで逆引き調査するとLINE社の情報が出ます。
どうやらLINEのクローラーロボットはフェイスブックを名乗ってWEBの情報を集めているようです。詐称?そんな事をしてもアクセス元IPですぐバレるけどなんでだろ。
一方、本物のフェイスブックのクローラーロボットは、きちんと記事に設定されたアイキャッチ画像を拾ってくれます。ということは、LINEはWEBのプレビュー情報データーベースをフェイスブックと共有している訳ではなく、独自に情報を収集しているということになります。
フェイスブックは、WEBのプレビュー情報取得のためにOpen Graph Protocolという規格を提唱してるので、LINEのクローラーもその規格に沿った情報を読み込ませてやれば、もしかしたらセンスのない写真を拾ってくることが無くなるのかも知れません。
今度時間があったらそのあたりを実験して確かめてみたいと思います。
関連記事: