Я пытаюсь подключиться к Airbnb и вернуть из него свои бронирования.
Мне удалось успешно войти в систему с помощью cURL, но я не могу получить бронирование.
URL бронирования: http://airbnbapi.org/#get-host-messages
Как вы можете видеть, HTTP-метод GET
, client_id
должны быть переданы в URL и X-Airbnb-OAuth-Token
в заголовках (после входа в систему).
После выполнения cURL при входе в систему я получаю следующий заголовок (используя функцию CURLINFO_HEADER_OUT
):
POST /v1/authorize HTTP/1.1
Host: api.airbnb.com
Accept: */*
Content-Length: 511
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------aa1ew132ff32wca9
С кодом 200 HTTP.
После входа в систему я выполняю cURL при бронировании и получаю:
GET /v2/threads?client_id=MyApiKey&_limit=10 HTTP/1.1
Host: api.airbnb.com
Accept: */*
{"error_code":404,"error_type":"invalid_action","error_message":"Action not found."}
Со следующим кодом:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.airbnb.com/v2/threads?client_id=MyApiKey&_limit=10');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Airbnb-OAuth-Token: ' . $MyAccessToken));
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$response = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$headerout = curl_getinfo($ch, CURLINFO_HEADER_OUT);
curl_close($ch);
print_r($headerout);
return array($http, $response);
Если я использую hurl.it с моими ценностями это работает без проблем.
решаемая.
Проблема заключалась в том, что мой return
должно быть декодирование $response
как JSON, и вместо этого я извлекаю его в виде простого текста, и поэтому я не могу получить access_token
параметр.
И с тех пор error_reporting
выключен, я этого не видел access_token
был пуст.
return array($http, json_decode($response));
Других решений пока нет …