kintone REST APIをPHPで扱う場合にはいろいろ選択肢がありますが、中でもPEARの
HTTP_Request2
は有力な候補のひとつです。
ここでは、
複数のレコードを取得する
例をもとに簡単なサンプルを紹介します。
HTTP_Request2のインストール
固定リンクがコピーされました
インストールはPEARやPEAR2を使った方法のほか、最新版のtgzをダウンロードして任意の場所に解凍してもよいかと思います。
しかし、利用する際にはパスを把握しておく必要がありますので気を付けてください。
参考:
PEARのインストール方法
、
HTTP_Request2のインストール方法
指定したアプリケーションのレコードを最大100件取得し、結果をダンプ出力するサンプルです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?php
/*
* php sample program
* Copyright (c) 2014 Cybozu
*
* Licensed under the MIT License
* https://opensource.org/license/mit/
*/
// HTTP_Request2
require_once 'HTTP/Request2.php';
// 認証設定
$subDomain = "your-subdomain";
$loginName = "your_login_name";
$password = "your_password";
// アプリID
$appId = 336;
// リクエストヘッダ
$header = array(
"Host: " . $subDomain . ".cybozu.com:443",
"Content-Type: application/json",
"X-Cybozu-Authorization: " . base64_encode($loginName . ':' . $password)
);
try {
// リクエスト作成
$request = new HTTP_Request2();
$request->setHeader($header);
$request->setUrl("https://" . $subDomain . ".cybozu.com/k/v1/records.json");
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setBody(json_encode(array("app" => $appId)));
$request->setConfig(array(
'ssl_verify_host' => false,
'ssl_verify_peer' => false
));
// レスポンス取得
$response = $request->send();
// HTTP_Request2のエラーを表示
} catch (HTTP_Request2_Exception $e) {
die($e->getMessage());
// それ以外のエラーを表示
} catch (Exception $e) {
die($e->getMessage());
}
// エラー時
if ($response->getStatus() != "200") {
echo sprintf("status: %s\n", $response->getStatus());
echo sprintf("cybozu error: %s\n", $response->getHeader('x-cybozu-error'));
echo sprintf("body: \n%s\n", $response->getBody());
die;
}
$data = json_decode($response->getBody(), true);
var_dump($data);
|
サンプルコードの解説
固定リンクがコピーされました
29
30
31
32
33
34
35
36
37
38
|
// リクエスト作成
$request = new HTTP_Request2();
$request->setHeader($header);
$request->setUrl("https://" . $subDomain . ".cybozu.com/k/v1/records.json");
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setBody(json_encode(array("app" => $appId)));
$request->setConfig(array(
'ssl_verify_host' => false,
'ssl_verify_peer' => false
));
|
ここでは、HTTP_Request2のインスタンスを生成し、必要な情報を設定しています。
HTTPリクエストヘッダーは、「Host」、「Content-Type」、「X-Cybozu-Authorization」の配列を指定します。
参考:
PHP Tips : kintone REST APIの認証設定について
また、HTTPメソッドやリクエストボディを設定しています。
参考:
複数のレコードを取得する
注意点として、HTTPメソッドはGETにしておくことをお忘れなく。
ここをPOSTにしてしまうと、
複数のレコードを登録するAPI
の実行になるため、エラーが発生します。
40
41
|
// レスポンス取得
$response = $request->send();
|
この一行でkintone REST APIへリクエストを投げ、$response
変数に
レスポンスのオブジェクト
を格納します。
複数のレコードを取得するのレスポンス
ような結果が得られたのではないでしょうか?
PEARのHTTP_Request2を利用したkintone REST APIの扱い方について説明いたしました。
HTTP_Request2はかなり汎用的なHTTPクライアントライブラリーです。ぜひ使ってみてください。