Joomla(CMS)からkintoneへの接続について

お世話になります。

 

掲題の件、Joomlaで作成したWebページから、kintoneアプリにあるレコードを取得しようと思っております。

 

▼参考サイト

・外部サイトから直接kintone APIを実行したい

https://qiita.com/ha_ru_ma_ki/items/ccb7c535d8ef1b255365

 

上記の参考サイトにあるように、Amazon API Gatewayを使用するしかないのでしょうか?

Wordpressにあるような、「wp_remote_get」関数があればいいのですが・・・

 

何かアドバイスなどいただければ幸いです。

お手数ですが、よろしくお願いいたします。

JavaScriptでやることを前提にすると、kintoneを等価的にCORS対応させるということが必要になるので、API GWのようにCORSを緩和したAPIを定義し直すしかないですね。

CMSであればWordPressと同じようにPHPでカスタマイズできたりしないんでしょうかね。

Ryu Yamashita様

 

お世話になっております。

ご回答いただきありがとうございます。

 

PHPでのカスタマイズを調べたところ、以下の記事を参考にkintoneへ接続できました。

=======================================================

【HTTP_Request2を利用したkintone REST APIの扱い方】

https://developer.cybozu.io/hc/ja/articles/202657614-HTTP-Request2%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9Fkintone-REST-API%E3%81%AE%E6%89%B1%E3%81%84%E6%96%B9

 

【PEARをインストールしないでHTTP_Request2を使う方法】

http://absg.hatenablog.com/entry/2014/10/24/180338

=======================================================

 

手順としては、Joomlaをインストールしているルートディレクトリの「include」フォルダに

ダウンロードしてきた「HTTP_Request2」と「Net_URL2」を置いて

同じくincludeフォルダに以下のphpを作成し、配置しました。

=======================================================

<?php
// HTTP_Request2
require_once ‘HTTP/Request2.php’;
// 認証設定
$subDomain = “<ドメイン名>”;
$tokenNum = ‘<APIトークン>’;
// アプリID
$appId = <アプリID>;
// リクエストヘッダ
$header = array(
“Host: " . $subDomain . “.cybozu.com:443”,
“Content-Type: application/json; charset=utf-8”,
“X-Cybozu-API-Token: “. $tokenNum
);
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”, $response->getStatus());
echo sprintf(“cybozu error: %s”, $response->getHeader(‘x-cybozu-error’));
echo sprintf(“body: %s”, $response->getBody());
die;
} else if ($response->getStatus() == “200”) {
echo “kintoneのデータを正常に取得完了(ステータス” . $response->getStatus() . “)”;
echo nl2br(””); //<br />タグが挿入される。
echo nl2br(”"); //<br />タグが挿入される。
}

$data = json_decode($response->getBody(), true);

//var_dump($data);

//json形式で出力したデータを整形する(No、testform1、testform2はkintoneアプリで設定しているフォームコード)
echo ‘No:’ . $data[‘records’][0][‘No’][‘value’] . nl2br(“”);
echo ‘氏名:’ . $data[‘records’][0][‘testform1’][‘value’] . nl2br(“”);
echo ‘フリガナ:’ . $data[‘records’][0][‘testform2’][‘value’] . nl2br(“”);

 

ひとまずは上記で対応しようかと思います。

お手数おかけいたしました。