Hatena::Grouphatenadeveloper

はてなグラフAPI

ja/graph/apis/rest

はてなグラフAPI

本ドキュメントについて

本ドキュメントははてなグラフにおける、APIの実装を解説するものです。

API仕様の解説

任意のグラフに、

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

を行うことができます。

認証

OAuth

本 API は OAuth によるユーザー認証に対応しています。 OAuth 認証の詳細に関しては、はてなのOAuthを利用する方法を参照してください。

取得 (GET) には read_private 操作、登録 (POST) には write_private 操作の承認を得ている必要があります。

WSSE

OAuth のかわりに WSSE 認証も利用できます。詳しくははてなサービスにおける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', 'api_key');
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', 'api_key')
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 以降のバージョンを利用する必要があります。

参考

変更履歴

  • 2013年7月30日 OAuth 対応
  • 2007年6月12日 リリース