読者です 読者をやめる 読者になる 読者になる

つばさのーと

つばさの日常を綴るのーと

はてな公式APIを利用してPHPでサイト全体のはてなブックマーク数を取得する

f:id:tsubasa123:20170126114939j:plain

 

こんにちは、つばさ(@tsubasa123)です。

 

外部APIを利用するのが大好きな私ですが、はてなブックマークのAPIって今まで使ったことがありませんでした。せっかくはてなでブログを始めましたのでちょっと試してみてみたことをメモしておきます。

 

とりあえずこのサイト見ればOK

 

syncer.jp

 

はてなに限らず、様々なサービスのAPIの使い方をまとめて下さっているサイトです。WEB界隈の人なら1度は見たことがあるサイトなんじゃないでしょうか?

 

はてなブックマークのAPIに関しても基本的な使い方は一通り説明してくださっているので、とりあえず何ができるか知りたい人はざっと目を通してみることをおすすめします。

 

IXR_Library.phpが見当たらない

 

サイト全体のブクマ数を取得するときはXML-RPCという形式でリクエストを送りましょう、とはてな公式でも、先のサイトでも説明されています。通常のリクエストじゃダメってことで、何かしらライブラリを利用するなりなんなりとちょっと工夫する必要があるようです。

 

で、先のサイトでも親切に利用できるライブラリを紹介してくださっているのですが、ちょっと情報が古いのか利用するライブラリへのリンクがデッドリンクになっていました。提供元が他のサービスに移動しちゃったんですかね。

 

がんばって探してもよかったんですが、そこまでやる気はなかったので代替サービスとしてPEARを選択、あんまり好きじゃないんですけど、まぁ他に選択肢が思い浮かばなかったので仕方なし。

 

ダウンロードして解凍するだけなんだけど

 

PEARコマンドなら依存も解決してくれると思うけど、ファイルをダウンロードする形で対応するには他のいくつかのファイルも自分で探してくる必要があります。

 

 

とりあえず、上記3つのパッケージをダウンロードして解凍したら動作するようになりました。詳細までは把握していませんが、とりあえずブクマの数は取得できるようになったので良しとします。

 

<?php

require_once 'XML/RPC2/Client.php';

$options = array(
    'prefix' => 'bookmark.'
);
$client = XML_RPC2_Client::create('http://b.hatena.ne.jp/xmlrpc', $options);
$count = $client->getTotalCount('http://basanote.hatenablog.com/');
var_dump($count); // 336

 

本記事投稿時点では336のブクマをいただけておりました。ありがとうございます。

 

さいごに

 

今回はブクマ数を取得しましたが、スターとかコメントとか結構色々遊べるみたいですね。これはうれしい誤算。

 

www.yutorism.jp

 

こーゆーランキングとか作ってみたいですね。読者数とfeedlyの取得方法もわかったし、2017年バージョン作らせていただこうかな。

 

ではでは、最後までお付き合いいただきありがとうございました。