新規投稿
フォローする

PHPでのkintoneレコード取得について(query)

現在apachを立てて、phpでkintoneアプリのデータを取得しようとしています

queryを指定しないと正常にデータが取得できるのですが、queryを指定するとエラーが発生してしまいます

ログを見る限り、「&query=・・・」の部分が「&apm;query=」に自動変換されてしまい、正しく処理ができない状態です

色々調べてみたのですが、解決策が見つからず

ご教授頂けると幸いです

ソースコードは下記のとおりです


<?php
//画面上で入力された情報を基に、商品アプリからレコードを取得し、値を返す
$query = $_POST['query'];
$subdomain = "hogehoge";//サブドメイン
$token = "rpSHKG97BodWNc5QfvVkUagxtaRMLXCalaDNB6gk";//商品アプリのAPIトークン
$appId = "8";//商品アプリのアプリID
$url = 'https://'.$subdomain.'.cybozu.com/k/v1/records.json?app='.$appId."&query=".$query;
$subdomain = "1line";//サブドメイン
//サーバ送信するHTTPヘッダを設定
$options = array(
'http'=>array(
'method'=>'GET',
'header'=> "X-Cybozu-API-Token:".$token."\r\n"
)
);
$buildQuery = http_build_query(array("app" => $appId,"query" => $query), "", "&");
//コンテキストを生成
$context = stream_context_create( $options );
// サーバに接続してデータを貰う
$contents = file_get_contents( 'https://'.$subdomain.'.cybozu.com/k/v1/records.json?'.$buildQuery, FALSE, $context );
$data = json_decode($contents, true);
echojson_encode($data["records"]);
?>
0

3件のコメント

Avatar
江田篤史

oota様

お世話になっております。
cstapの江田と申します。

ご提示いただいたコードのように、http_build_query()の第三引数(arg_separator)を指定しているのであれば問題ない気がしますが、何故でしょうね…
htmlspecialchars_decode()でデコードしても同じエラーが出ますか?

$contents = file_get_contents( 'https://'.$subdomain.'.cybozu.com/k/v1/records.json?'.htmlspecialchars_decode($buildQuery), FALSE, $context );
0
Avatar
江田篤史

oota様

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

因みに、エラーログはどのように確認されていますか?
エラーが出たページについてブラウザからソースを確認されているのであれば、エラーメッセ―ジの特殊文字をエスケープして表示しているだけなので、実際に「&」を「&amp;」に変換してリクエストしてはいないと考えられます。
queryの記述自体に誤りがある可能性はございませんか?

江田篤史により編集されました
1
Avatar
oota

江田様

 

お世話になります

ご教授頂き有難うございます

ご指摘の通り、queryの指定方法が誤っておりました...

無事APIの処理が成功し正常にデータが取得できたことを確認できました

ありがとうございました!

0
サインインしてコメントを残してください。