TOP ▲
itcore TOP
> TIPS
> php_cybozu.php
タグ:php サイボウズ kintone api PHP サイボウズ kintone REST API | itcore 2021年
<h3>cybozuからフィールド情報を取得する。</h3>
$param = [];
$param["KintoneSubdomain"] = "xxx";
$param["KintoneAppId"] = xxx;
$param["KintoneApiToken"] = "xxx";
// cybozuから画面情報を取得する。
$param["UrlPost"] = "records.json";
$param["Method"] = "GET";
// リクエストボディ
$body = [];
$body["app"] = $param["KintoneAppId"];
$body["query"] = "xxx = \"xxx\"";
$body["fields"] = ["xxx", "xxx"];
$param["body"] = $body;
$a1 = u_cybozu_api($param);
//-------------------------
// 関数 サイボウズAPI実行
//-------------------------
function u_cybozu_api($param) {
// 入力パラメタ
$KintoneSubdomain = $param["KintoneSubdomain"];
$KintoneAppId = $param["KintoneAppId"];
$KintoneApiToken = $param["KintoneApiToken"];
$UrlPost = $param["UrlPost"];
$Method = $param["Method"];
$body = $param["body"];
$ReqJson = uJsonEncode($body);
//echo "debug42 UrlPost=" . $UrlPost . " Method=" . $Method . " ReqJson=" . $ReqJson . "<br>\n";
// リクエストURLを作成
$uri = "https://" . $KintoneSubdomain . ".cybozu.com/k/v1/";
$uri .= $UrlPost;
// リクエストヘッダ
$header = array(
"Host: $KintoneSubdomain.cybozu.com:443",
"Content-Type: application/json",
"X-Cybozu-API-Token: $KintoneApiToken"
//"X-Cybozu-Authorization: " . base64_encode($loginName . ':' . $password),
);
// HTTPコンテキスト
$context = array(
"http" => array(
//"protocol_version" => "1.1",
"ignore_errors" => true, // ステータス400や500を拾えるようにする。
"method" => $Method,
"header" => implode("\r\n", $header),
"content" => $ReqJson
)
);
//echo "debug66 リクエスト uri=$uri"
// . " context=" .print_r($context, true)
// . "<br>\n";
// REST API
$result = file_get_contents(
$uri,
false, // use_include_pathは必要ないのでfalse
stream_context_create($context) // コンテキストの生成
);
// ダンプ出力
//echo '<pre>';
//var_dump($http_response_header);
//var_dump(json_decode($result, true));
//echo '</pre>';
// ステータスチェック
preg_match("/[0-9]{3}/", $http_response_header[0], $status);
$status = $status[0];
//echo "debug115 stcode=".print_r($status, true). "<br>\n";
echo "debug87 status=$status<br>\n";
// レスポンスヘッダ情報
$map = [];
foreach ($http_response_header as $line) {
list ($key, $data) = explode(":", "$line:");
$map[$key] = trim($data);
//echo "debug84 key=$key data=$data line=$line<br>\n";
}
$limit = uGetAr($map, "X-ConcurrencyLimit-Limit"); // 上限
$running = uGetAr($map, "X-ConcurrencyLimit-Running"); // 上限
echo "debug98 同時接続上限数=$limit 現在接続数=$running<br>\n";
// リクエストbodyを返す。
return $result;
}