はてなグラフAPI

はてな

はてなグラフAPI

はてなぐらふえーぴーあい

このページは古い情報を掲載しています

このページの情報は更新されていません。新しい情報は「はてなグラフAPI - Hatena Developer Center」に移転しました。


本ドキュメントについて

本ドキュメントははてなグラフにおける、APIの実装を解説するものです。主にはてなスタッフがその作成と更新を行っています。

変更履歴

  • 2007年 06月12日 リリース

API仕様の解説

任意のグラフに、

  • データの取得
  • データの登録
  • 設定の取得
  • 設定の登録

を行うことができます。

認証

このAPIでは、ユーザー認証にWSSE認証を使用しています。WSSE認証の詳細に関しては、はてなフォトライフAtomAPIのWSSEの項 (http://d.hatena.ne.jp/keyword/%a4%cf%a4%c6%a4%ca%a5%d5%a5%a9%a5%c8%a5%e9%a5%a4%a5%d5AtomAPI?kid=88110#wsse) を参照してください。

利用方法

エンドポイントURIに対し、application/x-www-form-urlencodedのデータを GET/POST してください。GET でデータの取得、 POST でデータの登録になります。


データ取得/登録

エンドポイントは次のURIです。

使用可能なキーは以下の通りです。

POST の場合(登録)

graphname
グラフの名前(UTF-8
date
YYYY-MM-DD形式の日付(省略可:省略時は今日の日付)
value
グラフの値

指定されたグラフ名に該当するグラフが存在しない場合はグラフ作成を行った後データ追加、存在する場合は該当日付のデータ上書きを行います。

また、dateが省略された場合は、登録時の日付が自動で設定されます。

リクエストの成否は、レスポンスコードを参照してください。正しく作成された場合は201が返ります。

GET の場合(取得)

graphname
グラフの名前(UTF-8
username
ユーザの名 (オプションデフォルトではWSSE認証のユーザ名)
type
データ形式yaml もしくは json

リクエストの成否は、レスポンスコードを参照してください。正しく取得された場合は200が返ります。

username を本人以外を指定した場合、そのグラフが公開・もしくは非公開だが本人が許可ユーザ・グループに含まれるかつ、データ表示が表示の場合、データを取得することができます。

設定の取得・登録

エンドポイントは次のURIです。

使用可能なキーは以下の通りです。

POST の場合(登録)

graphname
グラフの名前(UTF-8
graphcolor
グラフの色 ( FF0000 形式)
graphtype
グラフの種類 ( lines or bars )
status
公開・非公開の状態 (public or private)
allowuser
閲覧許可ユーザ
allowgrouplist
閲覧許可グループ
stack
累積値で表示 ( 1 or 0 )
reverse
上下逆で表示 ( 1 or 0 )
formula
数式
maxy
最大値
miny
最小値
showdata
データの表示 ( 1 or 0 )
nolabel
グラフ軸の値を表示しない ( 1 or 0)
userline
目標値
userlinecolor
目標値の色 ( FF0000 形式 )
comment
グラフの説明 (255バイト以内)

リクエストの成否は、レスポンスコードを参照してください。正しく作成/登録された場合は201が返ります。

GET の場合(取得)

graphname
グラフの名前(UTF-8
type
データ形式yaml もしくは json

リクエストの成否は、レスポンスコードを参照してください。正しく取得された場合は200が返ります。


サンプルプログラム

Perl

認証にはLWP::Authen::Wsseを使用しています。

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use DateTime;

my $ua = LWP::UserAgent->new;
$ua->credentials('graph.hatena.ne.jp:80', '', 'username', 'password');
my $res = $ua->post( 'http://graph.hatena.ne.jp/api/post', {
    graphname => 'graphname',
    date => DateTime->now->ymd,
    value => rand(10)
});
warn $res->content unless $res->code == 201;
exit;

Ruby

gem から Hatena::API::Graph パッケージをインストールします。

# gem install hatenaapigraph
require 'rubygems'
require 'hatena/api/graph'

graph = Hatena::API::Graph.new('username', 'password')
graph.post_data('graphname', :value => rand(10))
graph.post_data('graphname', :date => Date.today, :value => rand(10))

data = graph.get_data('graphname', 'username' => 'example')

config = graph.get_config('graphname')
config['usercolor'] = 'FF00FF'
graph.post_config('graphname', config)

tar からインストールしたい場合は

http://rubyforge.org/projects/hatenaapigraph/

からどうぞ。

ruby は 1.8.4 以降のバージョンを利用する必要があります。