事前準備
認証
APIを使用する為には、SE RankingのユーザーアカウントからAPIキーを取得する必要があります。本APIキーは呼び出されるメソッドごとに token パラメータを通して、または認証HTTPヘッダを通して送信されなければなりません。
APIメソッドがAPIキー無しで呼び出された場合や、無効なAPIキーでリクエストが送信された場合は、 “no token” や “incorrect token” エラーがサーバーから返されます。
APIキーの取得
API利用を開始するには、次の手順をご確認ください:
- ユーザーアカウントにログインします;
- 設定⇒API をクリックします;
- APIキー生成 ボタンをクリックします。
メソッド呼び出し
本APIはHTTPSプロトコル経由でアクセスできます。全てのAPIメソッドの呼び出しは次のURLに対してHTTP GET/POST/PUT/DELETE 形式のリクエストで行います:
https://api4.seranking.com/api
全ての送信、受信データのエンコードはUTF-8 です。Data transmitted in the body of the POST/PUT 形式のリクエストのbody内の送信データは、JSON 形式でなければなりません。
呼び出しに成功すると、HTTP 2xx コードが返されます。
エラーが起きると、HTTP 4xx コードや、HTTP 5xx コードがエラーの説明とともに返されます。
curl -X GET “https://api4.seranking.com/account/balance” -H “Authorization: Token be2165b7d065e278e7305c1c7ef791f283f5d14b”
HTTP/1.0 200 OK
Content-Type: application/json
{“currency”:”rur”,”value”:2296380.85}
——
curl -X GET “https://api4.seranking.com/api/sites”
HTTP/1.0 403 Forbidden
Content-Type: application/json
{“message”:”No token”}
——
curl -X POST “https://api4.seranking.com” -H “Authorization: Token be2165b7d065e278e7305c1c7ef791f283f5d14b” -d “{\”url\”:\”http://example.com\”,\”title\”:\”example1\”}”
HTTP/1.0 201 Created
Content-Type: application/json
{“site_id”:147696}
$apiKey = ‘API_KEY’;
$url = ‘https://api4.seranking.com/sites’;
$context = stream_context_create([
‘http’ => [
‘method’ => ‘POST’,
‘ignore_errors’ => true,
‘header’ => [
“Authorization: Token $apiKey”,
“Content-Type: application/json; charset=utf-8”
],
‘content’ => json_encode([
‘url’ => ‘https://example.com’,
‘title’ => ‘my test project’
])
]
]);
$httpStatus = null;
$result = file_get_contents($url, 0, $context);
if (isset($http_response_header)) {
preg_match(‘`HTTP/[0-9\.]+\s+([0-9]+)`’, $http_response_header[0], $matches);
$httpStatus = $matches[1];
}
if (!$result) {
echo “Request failed!”;
} else {
$result = json_decode($result);
if (201 == $httpStatus) {
echo $result->site_id;
} else {
echo ‘Error’.$result->message;
}
}
$url = ‘API_BASE_URL/sites’;
$token = ‘API_KEY’;
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_HTTPHEADER => [‘Authorization: Token ‘.$token],
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST =>true,
CURLOPT_POSTFIELDS=>json_encode([
‘url’ => ‘https://example.com’,
‘title’ => ‘my new test project’
])
]);
$content = curl_exec($curl);
if (!$content) {
echo “Request failed!”;
} else {
$info = curl_getinfo($curl);
$result = json_decode($content);
if (201 == $info[‘http_code’]) {
echo $result->site_id;
} else {
echo ‘Error’.$result->message;
}
}