У меня есть следующий код, чтобы сделать оператор GET для API REST сервера Parse с использованием PHP:
$query = json_encode(
array(
'where' => array( 'userid' => "8728792347239" )
));
echo $query;
$ch = curl_init('https://*hidden*.herokuapp.com/parse/classes/computers?'.$query);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'X-Parse-Application-Id: *hidden*',
'X-Parse-REST-API-Key: *hidden*',
'Content-Type: application/json'
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
print_r($response);
Однако я получаю следующую ошибку:
{"code":102,"error":"Invalid parameter for query: {\"where\":{\"userid\":\"8728792347239\"}}"}
Что я делаю неправильно?
не читая документацию, могу поспорить, что она должна быть в кодировке url, а не в кодировке json -OR-, что данные должны находиться в теле POST, а не в URL-запросе.
если предположение №1 верно, то ваша проблема в том, что вы используете json_encode
вместо http_build_query
например
$query = http_build_query(
array(
'where' => array( 'userid' => "8728792347239" )
));
если предположение № 2 верно, то ваша проблема в том, что вы добавляете данные в URL-запрос вместо того, чтобы добавлять их в тело запроса, например
$ch = curl_init('https://*hidden*.herokuapp.com/parse/classes/computers');
curl_setopt($ch,CURLOPT_POSTFIELDS,$query);
Других решений пока нет …