レ点腫瘍学ノート

pukiwikiカスタマイズ箇所/自作プラグイン/ogp.inc.php/opengraph.php改変 の履歴差分(No.1)


#author("2021-10-18T23:29:14+09:00;1970-01-01T18:00:00+09:00","default:tgoto","tgoto")
[[opengraph.php>https://github.com/scottmac/opengraph/]]はOGP情報を取得してブログやWEBサイトの情報量を増やして豊かなサイトを作るのに非常に有用です。しかし、クッキーに未対応であるが故にopengraph.phpを使っても取得できないページがあり、困っていました。このページではその解決策を記載します。

 curl_setopt($curl, CURLOPT_FAILONERROR, true);
 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($curl, CURLOPT_TIMEOUT, 15);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

デフォルトではcURLの設定に関するopengraph.phpの55〜61行目は上記のようになっていました。しかしこれではクッキーを扱えないため、サイトによっては取得ができないことがありました。具体的にはthe Lancetという英語医学雑誌のサイトの情報が取得できなくて困っていました。

そこで、下記の2行を追記します。これは、そのセッションだけで有効なクッキーを利用可能にするための設定です。

 curl_setopt($curl, CURLOPT_COOKIESESSION, true);
 curl_setopt($curl, CURLOPT_COOKIEFILE, './tmp/cookie.txt');

これで、クッキーを必要とするサイトでもopengraph.phpを使ってOGP情報を取得することができるようになりました。

参考までに改造後のopengraph.phpをここにアップロードしておきます。

$attacheref();