GET API для Parse Server с предложением Где PHP - PullRequest
0 голосов
/ 02 февраля 2019

У меня следующий код для выполнения инструкции 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\"}}"}

Что я делаю не так?

1 Ответ

0 голосов
/ 03 февраля 2019

не прочитав документацию, держу пари, что она должна быть в кодировке 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);
...