0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPIRAL ver.1 でKintoneとデータ連携する

0
Last updated at Posted at 2026-02-01

SPIRALは、主にエンタープライズ向けのローコードプラットフォームになります。ローコードプラットフォームなので、プログラミング知識がなくともWebアプリケーションを開発できるのが魅力です。

今回は、SPIRALのデータベースに登録されたタイミングでKintoneにもデータ登録してみます。

SPIRAL側のテーブル構造について

今回は最低限のデータ構造としています。名前は KintoneSync としていますので、コード部分は読み替えてください。

No. フィールド名 フィールドタイプ 差替キーワード
1 テキスト テキストフィールド(64 bytes) text
2 同期日時 日付(○年○月○日 ○時○分○秒) sync_at
3 KintoneId 数字・記号・アルファベット(6 bytes) kintone_id

FireShot Capture 252 - 通常DB一覧 - [pi-pe.smp.ne.jp].png

Kintoneアプリについて

Kintoneアプリ側も、テキスト(フィールド名Detail)が入るだけのシンプルなものです。

image.png

APIトークンを取得

Kintone側でAPIトークンを生成します。レコード追加の権限を付与してください。

image.png

生成後、アプリを更新して反映します。

フォーム表示時の処理

デフォルトのフォームでは 同期日時KintoneId が表示されるので、これは消しておきます。

FireShot Capture 254 -  - [www.pi-pe.co.jp].png

確認フォームでも消しておきます。

FireShot Capture 255 -  - [www.pi-pe.co.jp].png

データ登録完了時の処理

データ登録が完了した際にはサンキューページが読み込まれます。ここで、登録されているデータを元にKintoneへのデータ登録を行います。

<title>ご登録ありがとうございました。</title>
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=FAQ --> ?>
<?php
  // 以下の情報は書き換えてください
  $subdomain = 'YOUR_SUB_DOMAIN'; // サブドメイン
  $appId = 1;                     // アプリID
  $apiToken = '6Jy...3XT';

  // リクエスト情報
  $url = "https://{$subdomain}.cybozu.com/k/v1/record.json";
  $data = [
      'app' => $appId,
      'record' => [
          'Detail' => [
              'value' => $SPIRAL->getParam("text") // 内容のデータ
          ]
      ]
  ];

  $headers = [
      'X-Cybozu-API-Token: ' . $apiToken,
      'Content-Type: application/json'
  ];
  
  $ch = curl_init($url);
  curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => json_encode($data)
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  $result = json_decode($response, true);
  // 登録されたレコードID
  $recordId = $result['id'];

$recordId には 1 のような数字が入ります。

FireShot Capture 258 - 問い合わせ管理 - 11 - レコードの詳細 - [5e462.cybozu.com].png

次に、この $recordId を新規登録したデータに対して反映します。

  // SPIRALの元データを更新する
  $dt = new DateTime('now', new DateTimeZone('Asia/Tokyo'));
  $db = $SPIRAL->getDataBase("KintoneSync"); // 通常DBの名前
  $id = $SPIRAL->getContextByFieldTitle("id"); // データのID
  $params = array(
    "sync_at" => $dt->format('Y/m/d H:i:s'),
    "kintone_id" => intval($recordId)
  );
  $db->addEqualCondition("id", $id);
  $count = $db->doUpdate($params);
?>

これでSPIRALにデータが新規登録されると、Kintoneにデータが追加されます。

FireShot Capture 257 - DBオペレーション } KintoneSync - [pi-pe.smp.ne.jp].png

まとめ

Kintoneに連携することで、データの利活用が進みます。他部署とのデータ連携にも使えるので、SPIRALとKintoneを利用している組織ではぜひ試してください。

現在、SPIRALではエンジニアβという無料アカウントを配布しています。SPIRALに興味がある型はこちらから試してみてください。

API SPIRAL ver.1 サポートサイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?