kintone | PHPのcURL関数で kintone API を叩いてレコードを追加する方法

kintoneアプリ作成から kintone REST API をPHPのcURL関数で叩いてレコードを追加する方法のメモ。

kintoneアプリ作成

アプリ作成

“文字列(1行)”の入力フォームを3つ配置して氏名、電話番号、メールアドレスと設定します。(※フィールドコードは name / tel / email と設定)

APIトークン生成

アプリ設定の「APIトークン」からAPIトークンを生成します。アクセス権は “レコード追加” のみにチェックをいれて保存します。

レコード追加処理

KINTONE関連設定

// KINTONE APIトークン
define('KINTONE_API_TOKEN', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); //
// KINTONE アプリID
define('KINTONE_APP_ID', 1); // 
// KINTONE サブドメイン
define('KINTONE_SUBDOMAIN', 'xxxxxxxxxxxx');
// KINTONE URL
define('KINTONE_URL', 'https://'.KINTONE_SUBDOMAIN.'.cybozu.com/k/v1/record.json');

ダミーデータ設定

$name  = 'きんとーん てすと';
$tel   = '000-0000-0000';
$email = 'example@example.com';

cURL送信内容設定

リクエストヘッダー

// リクエストヘッダー
$headers = [
  'X-Cybozu-API-Token: ' . KINTONE_API_TOKEN,
  'Content-Type: application/json'
];

POST内容

// POSTする内容(name, tel, email はフィールドコード)
$fields = [
  'app'    => KINTONE_APP_ID,
  'record' => 
    [
      'name' => [
        'value' => $name
      ],
      'tel' => [
        'value' => $tel
      ],
      'email' => [
        'value' => $email
      ]
    ]
];
$fields_json = json_encode($fields);

cURLセッション初期化から終了

curlセッション初期化

$ch = curl_init();

オプション設定

curl_setopt($ch, CURLOPT_URL, KINTONE_URL);         // URL
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');    // メソッド名
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);     // ヘッダー
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_json); // POSTで送信するデータ
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     // 返り値を文字列で返す(false にすると出力される)

curl実行

$response = curl_exec($ch);

curlセッション終了

curl_close($ch);

レコード追加サンプルコード

<?php
/**
 * KINTONE関連設定
 */
// KINTONE APIトークン
define('KINTONE_API_TOKEN', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); //
// KINTONE アプリID
define('KINTONE_APP_ID', 1); // 
// KINTONE サブドメイン
define('KINTONE_SUBDOMAIN', 'xxxxxxxxxxxx');
// KINTONE URL
define('KINTONE_URL', 'https://'.KINTONE_SUBDOMAIN.'.cybozu.com/k/v1/record.json');


/**
 * ダミーデータ設定
 */
$name  = 'きんとーん てすと';
$tel   = '000-0000-0000';
$email = 'example@example.com';


/**
 * cURL送信内容設定
 */
// リクエストヘッダー
$headers = [
  'X-Cybozu-API-Token: ' . KINTONE_API_TOKEN,
  'Content-Type: application/json'
];

// POSTする内容(name, tel, email はフィールドコード)
$fields = [
  'app'    => KINTONE_APP_ID,
  'record' => 
    [
      'name' => [
        'value' => $name
      ],
      'tel' => [
        'value' => $tel
      ],
      'email' => [
        'value' => $email
      ]
    ]
];
$fields_json = json_encode($fields);


/**
 * cURLセッション初期化から終了
 */
// curlセッション初期化
$ch = curl_init();
// オプション設定
curl_setopt($ch, CURLOPT_URL, KINTONE_URL);         // URL
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');    // メソッド名
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);     // ヘッダー
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_json); // POSTで送信するデータ
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     // 返り値を文字列で返す(false にすると出力される)
// curl実行
$response = curl_exec($ch);
// curlセッション終了
curl_close($ch);
exit;

動作環境情報

"エックスサーバー" スタンダード(旧X10)
"PHP" 7.4.33
kintone スタンダードコース(開発者アカウント)

関連記事

コメント

タイトルとURLをコピーしました