OGPを超簡単にパース可能なPHPスクリプト OpenGraph.php
OGPを超簡単にパース可能な OpenGraph.php
Open Graph protocolを超簡単にパースするスクリプトを見つけましたのでご紹介します。
その前にOGP(The Open Graph protocol)とは何ですか?
割と最近までOGPの存在すら知らなかったのですが、FacebookなんかであるURLをシェアしたり、タイムラインの中にURLを書き込んだりすると
FacebookのOGP取得結果
こんな風に写真やちょっとしたテキストが表示されます。
SNSとウェブページを連携させるための情報をコンピュータが読めるように記述したもの
それがOGPですね。
FacebookOGPの書き方
タイムラインなど、URLがシェアされたとき ここぞ、と言うところの画像やテキストを指定します。
ヘッダー内に書くのが基本ですね。
これはある日あるときの私のTweetpicのOGP情報です。
こんな風に、metaタグとして、ヘッダーに書いてあげまず。
<meta property="og:title" content="A photo from @chihiro_kaasan"/> <meta property="og:type" content="twitpicfbapp:photo" /> <meta property="og:url" content="http://twitpic.com/ajyzdp"/> <meta property="og:image" content="http://twitpic.com/show/thumb/ajyzdp"/> <meta property="og:site_name" content="TwitPic"/> <meta property="fb:app_id" content="331538683530736" />
ここからが本題。OGPのパース方法
では、OGPを取得するにはどうすればいいでしょうか?
このOpenGraph.phpを使えば、画像はもちろんURLやサイト名などのOGP情報を簡単に取得することが出来ます。
OpenGraph.phpの使い方
何と、ワンツーステップ!OpenGraph.phpを読み込んで、URLを指定するだけでパース完了!
(なんともおいしそうな豚の角煮のレシピ:クックパドより)
//OGPを簡単パースするOpenGraphを読み込み require_once('OpenGraph.php'); //URLを指定 $graph = OpenGraph::fetch('http://cookpad.com/recipe/1606942');
するとオブジェクトで結果が返ってきます。
OpenGraph Object ( [_values:OpenGraph:private] => Array ( [type] => cookpad:recipe [title] => やわらか豚の角煮を簡単に by mi0921 [description] => 【話題入り・つくれぽ300件感謝です♡】圧力鍋無しでOK。とろとろ〜★もちろん箸で切れます!煮る時間は約2時間! [image] => http://d3921.cpcdn.com/recipes/1606942/120x120c/8c530792c847977d1ecdf281ba5ec170.jpg?u=3586013&p=1322668071 [url] => http://cookpad.com/recipe/1606942 ) [_position:OpenGraph:private] => 0 )
オブジェクトですので、HTML中に表示してあげるなら以下のようにします。
<p><?php echo($graph->title);?></p> <img src="<?php echo($graph->image);?>" />
とっても簡単ですね。
取得例
DEMO
これを使いこなせば、Facebookのようなコメント機能やOGPを利用したちょっとしたWEBサービスなど作れそうでいいですね!
OGPが世の中にもっと普及しますように!