お世話になります。
掲題の件、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(“”);
ひとまずは上記で対応しようかと思います。
お手数おかけいたしました。