機能・サービス
掲示板の投稿内容を外部から取得したい
APIを使用することで最新投稿30件を取得することができます。
本機能を使用には技術的な知識が必要です。知識をお持ちでない方向けには埋め込み用ウィジェットの提供も別途行っています。
本APIは、APIキーとHMAC署名による認証を行います。クライアントは署名付きヘッダーを送信する必要があります。APIキーおよびシークレットキーは管理画面より発行することができます。
タイムスタンプの誤差は ±5分以内である必要があります。
署名は
シークレットキーは外部に漏洩しないよう厳重に管理してください。
通信は必ず HTTPS 経由で行ってください。
本機能を使用には技術的な知識が必要です。知識をお持ちでない方向けには埋め込み用ウィジェットの提供も別途行っています。
概要
本APIは、APIキーとHMAC署名による認証を行います。クライアントは署名付きヘッダーを送信する必要があります。APIキーおよびシークレットキーは管理画面より発行することができます。
API情報
| エンドポイント | https://rara.jp/api/latestPost |
|---|---|
| メソッド | GET |
| 認証方式 | APIキー + HMAC署名(SHA-256) |
| 返却形式 | JSON |
認証方法
以下のヘッダーを付与してください:
X-API-Key | あなたのAPIキー |
|---|---|
X-Timestamp | UNIXタイムスタンプ(秒) |
X-Signature | 後述の方法で生成した署名 |
署名生成ルール
以下の形式で署名対象文字列を構成します:
HTTPメソッド
リクエストパス
タイムスタンプ
ボディ例:
GET
/api/latestPost
1722600000
これに対して、次のように署名を生成します:
$signature = hash_hmac('sha256', $dataToSign, $secretKey);PHPクライアントサンプル
<?php
$apiKey = 'あなたのAPIキー';
$secretKey = '対応するシークレットキー';
$method = 'GET';
$baseUrl = 'https://rara.jp/api/latestPost';
$timestamp = time();
$body = '';
$parsedUrl = parse_url($baseUrl);
$path = $parsedUrl['path'] ?? '/';
$dataToSign = "{$method}\n{$path}\n{$timestamp}\n{$body}";
$signature = hash_hmac('sha256', $dataToSign, $secretKey);
$ch = curl_init($baseUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-API-Key: $apiKey",
"X-Timestamp: $timestamp",
"X-Signature: $signature"
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
Pythonクライアントサンプル
import time
import hmac
import hashlib
import requests
from urllib.parse import urlparse
api_key = 'あなたのAPIキー'
secret_key = '対応するシークレットキー'
method = 'GET'
base_url = 'https://rara.jp/api/latestPost'
timestamp = int(time.time())
body = ''
parsed_url = urlparse(base_url)
path = parsed_url.path or '/'
data_to_sign = f"{method}\n{path}\n{timestamp}\n{body}"
signature = hmac.new(secret_key.encode(), data_to_sign.encode(), hashlib.sha256).hexdigest()
headers = {
'X-API-Key': api_key,
'X-Timestamp': str(timestamp),
'X-Signature': signature
}
response = requests.get(base_url, headers=headers)
print(response.json())
成功レスポンス例
{
"num": "記事No",
"sub": "投稿タイトル",
"date": "投稿日時",
"lastup": "最終更新日時",
"name": "投稿者名",
"com": "本文",
"open": "公開中の場合、true 非公開の場合 false",
"url": "https://rara.jp/***",
}
エラー例
| 状況 | 例 |
|---|---|
| 署名が無効 | {"error": "Invalid signature"} |
| タイムスタンプがずれている | {"error": "Timestamp is too old"} |
| APIキーが存在しない | {"error": "Invalid API key"} |
注意事項
タイムスタンプの誤差は ±5分以内である必要があります。
署名は
hex形式 を使用してください。シークレットキーは外部に漏洩しないよう厳重に管理してください。
通信は必ず HTTPS 経由で行ってください。
2025-08-02