Я пытаюсь загрузить прямую трансляцию списков недвижимости из DDF CREA. Я делаю запрос API через PHP к их DDF, и загружаю и загружаю все последние списки в мою БД. Это работает нормально, проблема в том, что мои списки клиентов находятся в DDF и должны быть извлечены, а все остальные списки не извлекаются. Я, кажется, получаю то, что кажется, как все списки для окружающей области, но, возможно, нет, так как я не могу получить списки моего клиента, которые должны быть частью тяги. Когда я разговаривал с людьми из CREA, они говорили, что списки моих клиентов находятся в DDF, поэтому я должен иметь возможность просматривать их со всеми другими списками. Я надеялся получить совет от некоторых людей, которые лучше понимают, как сделать запрос, или даже лучше, используя DDF CREA.
Я приведу свой код ниже, я постараюсь включить только те материалы, которые будут иметь отношение к делу, и уберу ненужный код, чтобы сделать это немного легче. Если вы хотите увидеть больше кода, я добавлю эти части по запросу.
Если я правильно понимаю, мне нужно добавить в мой массив параметров, но я действительно не знаю, почему мой запрос делает это, поэтому любая помощь будет потрясающей!
Вот код для моего файла download.php
$TimeBackPull = "-24 hours";
/* RETS Variables */
require("PHRets_CREA.php");
$RETS = new PHRets();
$RETSURL = "http://data.crea.ca/Login.svc/Login";
$RETSUsername = "**********************";
$RETSPassword = "**********************";
$RETS->Connect($RETSURL, $RETSUsername, $RETSPassword);
$RETS->AddHeader("RETS-Version", "RETS/1.7.2");
$RETS->AddHeader('Accept', '/');
$RETS->SetParam('compression_enabled', true);
$RETS_PhotoSize = "LargePhoto";
$RETS_LimitPerQuery = 100;
if($debugMode /* DEBUG OUTPUT */)
{
$RETS->SetParam("catch_last_response", true);
$RETS->SetParam("debug_file", "CREA_Anthony.txt");
$RETS->SetParam("debug_mode", true);
}
$DBML = "(LastUpdated=" . date('Y-m-d', strtotime($TimeBackPull)) . ")";
$params = array("Limit" => 1, "Format" => "STANDARD-XML", "Count" => 1);
$results = $RETS->SearchQuery("Property", "Property", $DBML, $params);
$totalAvailable = $results["Count"];
for($i = 0; $i < ceil($totalAvailable / $RETS_LimitPerQuery); $i++)
{
$startOffset = $i*$RETS_LimitPerQuery;
$params = array("Limit" => $RETS_LimitPerQuery, "Format" => "STANDARD-XML", "Count" => 1, "Offset" => $startOffset);
$results = $RETS->SearchQuery("Property", "Property", $DBML, $params);
foreach($results["Properties"] as $listing)
{
//Do Some Stuff
}
}
Вот как выглядит мой текущий запрос в файле возврата XML
http://data.crea.ca/Search.svc/Search?SearchType=Property&Class=Property&Query=%28LastUpdated%3D2015-09-22%29&QueryType=DMQL2&Count=1&Format=STANDARD-XML&Limit=1&StandardNames=0
Другое дело, что люди из CREA сказали, что должно быть около 1900 активных списков, но когда я подсчитываю результаты, я получаю только 182 прямо сейчас.
Вы решили это?
CREA DDF — странное животное. Они только частично поддерживают спецификацию RETS, но не полностью. Они разработали свою систему на основе разделений «Места назначения» (также называемых «каналы данных») и «Поставщик технологий».
1) Каждый из ваших клиентов создает один или несколько каналов данных, каждому из которых назначается уникальный DestinationID. При настройке канала они выбирают вас в качестве Технического поставщика, поэтому их списки также включаются в ваш канал.
2) У вас, как у поставщика технологий, есть единый канал, в котором вы можете просмотреть все списки всех своих клиентов. Однако в этом случае все листинги не ссылаются на то, к какому каналу / назначению он относится. Вам нужно извлечь данные в контексте определенного места назначения, а затем вручную связать текущий DestinationID с поступающими списками.
CREA считает, что они сделали это проще, имея один канал Tech Provider, но на самом деле они сделали это более трудным, потому что они предоставляют неполные данные в ответах. Вы, как разработчик, должны вручную создавать ассоциации с вашей стороны.
Ваши клиенты выбирают вас в качестве поставщика технологий при настройке каналов данных? Видите ли вы, что их каналы отображаются в таблице «Направления»?
Других решений пока нет …