json — проблема с получением календаря AirBnb с использованием PHP cUrl

Я пытаюсь получить календарь airbnb для своих клиентов, используя неофициальный API AirBnb.

API использует cUrl для извлечения календаря:

curl -X POST --compressed
-H "X-Airbnb-OAuth-Token: 9nwld6we4td9vkwj160teb49a"-H "Content-Type: application/json; charset=UTF-8"--data-binary '{"operations":[{"method":"GET","path":"/calendar_days","query":{"start_date":"2016-01-30","listing_id":"12132179","_format":"host_calendar","end_date":"2017-03-30"}},{"method":"GET","path":"/dynamic_pricing_controls/12132179","query":{}}],"_transaction":false}'
https://api.airbnb.com/v2/batch/?client_id=3092nxybyb0otqw18e8nh5nty&locale=en-US¤cy=USD

Я проверил это с помощью Hurl.it так что я знаю, что это работает. Проблема в том, что я не знаю, как правильно отправить --data-binary раздел с использованием PHP. Мой текущий код PHP:

$query = '{"operations":{"method":"GET","path":"/calendar_days","query":{"start_date":"' . date('Y-m-d') . '","listing_id":"' . $propertyID . '","_format":"host_calendar","end_date":"' . date('Y-m-d', strtotime('+1 year')) . '"}},"_transaction":false}';

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.airbnb.com/v2/batch/?client_id=$client_id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Content-Type" => "application/json; charset=UTF-8",
"X-Airbnb-OAuth-Token" => $token
],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $query
));

$calendar = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

Любая помощь приветствуется. Благодарю.

1

Решение

Пытаться header("Content-Transfer-Encoding: binary");

и установите CURLOPT_BINARYTRANSFER в TRUE

(и, возможно, также установите X-Airbnb-API-Key: client_id_here)

0

Другие решения

Других решений пока нет …