はじめに
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 クライアントライブラリーです。ぜひ使ってみてください。