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”

)

);

$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”]);

?>

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 );

oota様

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

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

江田様

 

お世話になります

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

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

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

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