ver.1サポートサイト


一覧表(PHP)

最終更新日:2023年02月21日

一覧表データを取得するサンプルプログラムです。
本サンプルプログラムは外部呼出し(スパイラル以外のサーバから動作させる場合)と内部呼出し(スパイラル内部で動作させる場合)と分けて記載をしています。
利用する用途によって使用するサンプルプログラムの使い分けを行ってください。
※外部呼出しに利用するサンプルプログラムにはスパイラル内のWebコンポーネントで使用できない関数などが含まれる場合がありますのでご注意ください。
使用できないPHPの関数について、PHP利用時の注意事項をご覧ください。
※内部呼出しを利用する場合はアカウント内APIの設定を「ON」に変更する必要があります。

外部呼出しを利用する場合

<?php

// サービス用のURL (ロケータから取得)
$api_url = "https://xxxxx.smp.ne.jp/api/service";

// -----------------------------------------------------------------------------
// ログイン
// -----------------------------------------------------------------------------

// API用のHTTPヘッダ
$api_header = "";
$api_header .= "X-SPIRAL-API: area/login/request\r\n";
$api_header .= "Content-Type: application/json; charset=UTF-8\r\n";

// 送信するJSONデータを作成
$parameters = array();
$parameters["spiral_api_token"] = "00000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$parameters["my_area_title"] = "api_auth";
$parameters["id"] = "test01";
$parameters["password"] = "pass01";
$parameters["passkey"] = time();
$parameters["url_type"] = "2";

// 署名を付けます
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"];
$secret = "000000000000000000000000000000000abcdef";
$parameters["signature"] = hash_hmac('sha1', $key, $secret, false);
$json = json_encode($parameters);
echo "==> LOGIN REQUEST (JSON)\n";
echo $json . "\n\n";

// POSTで送信します。
$stream = stream_context_create(
    array('http' => array(
        'method' => 'POST',
        'protocol_version' => '1.0',
        'header' => $api_header,
        'content' => $json
    ))
);

// レスポンスデータ読み込み
$response = file_get_contents($api_url, false, $stream);

// 画面に表示
echo "==> LOGIN RESPONSE (JSON)\n";
echo $response . "\n\n";

// -----------------------------------------------------------------------------
// データ取得
// -----------------------------------------------------------------------------

// API用のHTTPヘッダ
$api_header = "";
$api_header .= "X-SPIRAL-API: table/data/request\r\n";
$api_header .= "Content-Type: application/json; charset=UTF-8\r\n";

// 送信するJSONデータを作成
$parameters = array();
$parameters["spiral_api_token"] = "00000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$parameters["my_area_title"] = "api_auth";
$parameters["search_title"] = "api_search";
$parameters["passkey"] = time();

// 検索条件
$parameters["search_condition"] = array(
    array("name" => "body", "value" => "本文0"),
);

// セッションIDを付けます
$response_json = json_decode($response, true);
$parameters["jsessionid"] = $response_json["jsessionid"];

// 署名を付けます
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"];
$secret = "000000000000000000000000000000000abcdef";
$parameters["signature"] = hash_hmac('sha1', $key, $secret, false);
$json = json_encode($parameters);
echo "==> TABLE REQUEST (JSON)\n";
echo $json . "\n\n";

// POSTで送信します。
$stream = stream_context_create(
    array('http' => array(
        'method' => 'POST',
        'protocol_version' => '1.0',
        'header' => $api_header,
        'content' => $json
    ))
);

// レスポンスデータ読み込み
$response = file_get_contents($api_url, false, $stream);

// 画面に表示
echo "==> TABLE RESPONSE (JSON)\n";
echo $response . "\n\n";

// -----------------------------------------------------------------------------
// ログアウト
// -----------------------------------------------------------------------------

// API用のHTTPヘッダ
$api_header = "";
$api_header .= "X-SPIRAL-API: area/logout/request\r\n";
$api_header .= "Content-Type: application/json; charset=UTF-8\r\n";

// 送信するJSONデータを作成
$parameters = array();
$parameters["spiral_api_token"] = "00000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$parameters["my_area_title"] = "api_auth";
$parameters["passkey"] = time();

// セッションIDを付けます
$response_json = json_decode($response, true);
$parameters["jsessionid"] = $response_json["jsessionid"];

// 署名を付けます
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"];
$secret = "000000000000000000000000000000000abcdef";
$parameters["signature"] = hash_hmac('sha1', $key, $secret, false);
$json = json_encode($parameters);
echo "==> LOGOUT REQUEST (JSON)\n";
echo $json . "\n\n";

// POSTで送信します。
$stream = stream_context_create(
    array('http' => array(
        'method' => 'POST',
        'protocol_version' => '1.0',
        'header' => $api_header,
        'content' => $json
    ))
);

// レスポンスデータ読み込み
$response = file_get_contents($api_url, false, $stream);

// 画面に表示
echo "==> LOGOUT RESPONSE (JSON)\n";
echo $response . "\n\n";
print_r(json_decode($response, true));

?>

内部呼出しを利用する場合

<?php

//マイエリアタイトル
$AREA_TITLE = "api_auth";

// ログインするレコードの識別キー
$LOGIN_KEY = "test01";

// ログインするレコードのパスワード
$LOGIN_PWD = "pass01";

// 一覧表の検索フォームのタイトル
$SEARCH_TITLE = "api_search";

//============================================
// ■API共通
//============================================

// APIコミュニケータをセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();

//============================================
// ログイン
//============================================

// リクエストパラメータのセット
$request = new SpiralApiRequest();
$request->put("my_area_title", $AREA_TITLE);
$request->put("id", $LOGIN_KEY);
$request->put("password", $LOGIN_PWD);
$request->put("url_type", "2");

// スパイラルAPIサーバへリクエストを送信
$response = $api_communicator->request("area", "login", $request);

// レスポンスの取得
if ($response->get("code") == 0) {
    echo "<p>area/login 正常終了。(code:" . $response->get("code") . ")</p>";
} else {
    echo "<p>area/login エラーが発生しました。(code:" . $response->get("code") . ")</p>";
}
print_r($response);

//============================================
// 一覧表のデータ取得
//============================================

// jsessionidの取得
if ($response->get("code") == 0) {
    $jsessionid = $response->get("jsessionid");
} else {
    print("\ntable/data エラーが発生しました。(code:" . $response->get("code") . ")\n");
}

// リクエストパラメータのセット
$request = new SpiralApiRequest();
$request->put("jsessionid", $jsessionid);
$request->put("my_area_title", $AREA_TITLE);
$request->put("search_title", $SEARCH_TITLE);

// スパイラルAPIサーバへリクエストを送信
$response = $api_communicator->request("table", "data", $request);

// レスポンスの取得
if ($response->get("code") == 0) {
    echo "<p>table/data 正常終了。(code:" . $response->get("code") . ")</p>";
} else {
    echo "<p>table/data エラーが発生しました。(code:" . $response->get("code") . ")</p>";
}
print_r($response);

//================================================
// ログアウト
//================================================

// リクエストパラメータのセット
$request = new SpiralApiRequest();
$request->put("jsessionid", $jsessionid);
$request->put("my_area_title", $AREA_TITLE);

// スパイラルAPIサーバへリクエストを送信
$response = $api_communicator->request("area", "logout", $request);

// レスポンスの取得
if ($response->get("code") == 0) {
    echo "<p>area/logout 正常終了。(code:" . $response->get("code") . ")</p>";
} else {
    echo "<p>area/logout エラーが発生しました。(code:" . $response->get("code") . ")</p>";
}
print_r($response);
?>