Developer's Blog

【PHP】とあるページの、はてブコメント、ツイート、Facebookいいね!数を取得するテンプレコード【’11年末版】

php.png

こんにちは。開発担当の林です。

今回はタイトル通りPHP(5.2以上)で、とあるページの、はてブコメントと、ツイート、Facebook いいね!数を簡単に取得するためのテンプレ用ソースコードです。
最低限のコードですが、比較的よく使われるものなのかなと思ってまとめました。
何かのお役に立てれば幸いです。

※ 本記事は、各サービスの公式 API を使っています。

  1. はてなブックマークエントリー情報取得API
  2. Twitter API (日本語参考:Twitter API – TwitterまとめWiki
  3. Facebook Query Language

(`・ω・´)

はてブコメントと関連エントリーの取得

<?php
// とあるページのアドレス(任意のアドレスをどうぞ)
$sample_url = 'http://www.fenrir.co.jp/';

// はてブの情報取得	
$hatena_json_uri = 'http://b.hatena.ne.jp/entry/json/?url='.rawurlencode($sample_url);
$result = file_get_contents( $hatena_json_uri );
$hatena_result_array = json_decode($result);


// 以下に扱う変数を出しているので適宜好きなように取り扱ってね。

// サムネイル画像のアドレス(string 型)
$hatena_result_array->screenshot;

// はてブ数(string 型)
$hatena_result_array->count;

// 関連エントリー
foreach ($hatena_result_array->related as $val_relEntry) {

	// はてブ数(string 型)
	$val_relEntry->count;
	
	// タイトル(string 型)
	$val_relEntry->title;

	// 記事のURL(string 型)
	$val_relEntry->url;
}

// 記事へのコメント分だけ、ループを回してます。
foreach ($hatena_result_array->bookmarks as $val_entry) {
	
	// ユーザー名(string 型)
	$val_entry->user;
	
	// コメント(string 型)
	$val_entry->comment;
	
	// タグ(この時点ではまだ配列で、タグの数だけ string 型で格納)
	$val_entry->tags;
	
	// 時間(string 型 ex. "2011/11/04 18:56:19" )
	$val_entry->timestamp;
}

ツイートの取得

<?php
// とあるページのアドレス(任意のアドレスをどうぞ)
$sample_url = 'http://www.fenrir.co.jp/';

// ツイートの取得	(rpp は取得件数)
$twit_atom_uri = 'http://search.twitter.com/search.atom?rpp=10&q='.rawurlencode($sample_url);
$result = file_get_contents( $twit_atom_uri );
$twit_xml = simplexml_load_string($result);


// 以下に扱う変数を出しているので適宜好きなように取り扱ってね。
// ツイートの数だけ、ループを回してます。
foreach ($twit_xml->entry as $val_tweet) {
	
	// メッセージ ID (string 型にキャスト)
	(string)$val_tweet->id;

	// メッセージ ID を使う場合は 'tag:search.twitter.com,2005:' を消しておくと扱いやすい
	$ret_id = str_replace('tag:search.twitter.com,2005:', '', (string)$val_tweet->id);

	// 日付 (string 型にキャスト)
	(string)$val_tweet->updated;
	
	// a タグ付きツイート本文(string 型にキャスト)
	(string)$val_tweet->title;
	
	// テキストのみのツイート本文(string 型にキャスト)
	(string)$val_tweet->content;
	
	// ユーザー名(string 型にキャスト)
	(string)$val_tweet->author->name;
	
	// ユーザーのプロフィールアドレス(string 型にキャスト)
	(string)$val_tweet->author->uri;
	
	// ユーザーの画像のアドレス(string 型にキャスト)
	(string)$val_tweet->link[1]->attributes()->href;
	
	// ツイートのアドレス(string 型にキャスト)
	(string)$val_tweet->link[0]->attributes()->href;
}

Facebook いいね!数を取得

公式ドキュメントには、いいね!数以外にも取得する方法があるので見てみてね。

<?php
// とあるページのアドレス(任意のアドレスをどうぞ)
$sample_url = 'http://www.fenrir.co.jp/';

// いいね!数の取得	
$like_xml_uri = 'http://api.facebook.com/method/fql.query?query=select+total%5Fcount+from+link%5Fstat+where+url%3D%22'.rawurlencode($sample_url).'%22';
$result = file_get_contents( $like_xml_uri );
$like_xml = simplexml_load_string($result);

// いいね!数(この値がずばりそのもの)(string 型にキャスト)
(string)$like_xml->link_stat->total_count;

以上となります。実際に使うときはエラー処理を忘れずにね。
素敵なウェブサービス、ブログの開発にお役立てください。






フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!

Copyright © 2019 Fenrir Inc. All rights reserved.