Я пытаюсь получить календарь 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);
Любая помощь приветствуется. Благодарю.
Пытаться header("Content-Transfer-Encoding: binary");
и установите CURLOPT_BINARYTRANSFER в TRUE
(и, возможно, также установите X-Airbnb-API-Key: client_id_here)
Других решений пока нет …