首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RETS获取正确的列表数据时出现问题

使用RETS获取正确的列表数据时出现问题
EN

Stack Overflow用户
提问于 2015-09-24 00:32:20
回答 1查看 593关注 0票数 0

我正在尝试从CREA的DDF下载房产列表的实时订阅。我正在通过PHP向他们的DDF发出API请求,并将所有最近的列表拉入并下载到我的数据库中。这工作得很好,问题是我的客户在DDF中的列表,应该拉与所有其他列表没有被拉出。我似乎得到了周围地区的所有列表,但可能不是因为我无法收到我客户的列表,这应该是拉动的一部分。当我与CREA的人交谈时,他们说我的客户列表在DDF中,所以我应该能够将他们与所有其他列表一起拉动。我希望从一些人那里得到一些建议,他们对像这样的请求有更好的理解,或者更好地使用CREA的DDF。

我将在下面提供我的代码,我将尝试只包含相关的内容,并删除不必要的代码以使这变得更容易。如果你想看到更多的代码,我会根据要求添加这些部分。

如果我理解正确,我需要添加到我的参数数组中,但我真的不知道我的请求为什么要这样做,所以任何帮助都会很棒!

下面是我的download.php文件的代码

代码语言:javascript
复制
$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文件中的样子

代码语言:javascript
复制
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个左右

EN

回答 1

Stack Overflow用户

发布于 2016-04-30 06:28:57

你把这事解决了吗?

CREA DDF是奇怪的动物。它们只部分支持RETS规范,而不是完全支持。他们围绕“目的地”(又称“数据馈送”)和“技术提供商”分离来设计他们的系统。

1)每个客户端创建一个或多个数据馈送,每个数据馈送分配一个唯一的DestinationID。在设置提要时,他们会选择您作为技术提供商,因此他们的列表也会包含在您的提要中。

2)作为技术提供商,您有一个单一的feed,您可以在其中拉取所有客户的所有列表。然而,这里的问题是,每个列表都没有引用它所属的提要/目的地。您需要在特定目的地的上下文中提取数据,然后手动将当前DestinationID与通过的列表相关联。

CREA认为,他们通过拥有单一的技术提供商提要让事情变得更简单,但实际上他们让事情变得更加困难,因为他们提供的回复数据不完整。作为开发人员,您需要在自己的一端手动进行关联。

在设置数据馈送期间,您的客户是否选择您作为其技术提供商?您是否看到他们的订阅源显示在您的Destination表中?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32744887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档