1

我确实在 HubSpot 中创建了一家公司,下面的代码可以正常工作,但无论我传递给 setValue() 什么,它总是返回文件中所有公司的完整列表,而不是只返回一个现有的公司,即 hubspot.com

也尝试使用 setPropertyName('hubspot') - 结果相同。

有任何想法吗?

顺便提一句。我已经问过 HubSpot 社区,但还没有人回复。

public function searchCompany($company_domain)
{

    $filter = new \HubSpot\Client\Crm\Companies\Model\Filter();
    $filter->setOperator('EQ')->setPropertyName('domain')->setValue($company_domain);

    $searchRequest = new \HubSpot\Client\Crm\Companies\Model\PublicObjectSearchRequest();
    $searchRequest->setFilterGroups([$filter]);

    try {
        $response = $this->hubspot_client->crm()->companies()->searchApi()->doSearch($searchRequest);
        return $response;
    } catch (ApiException $e) {
         return $e->getMessage();
    }

}
4

1 回答 1

1

要使用 HubSpot 的 searchAPI() 方法返回公司 ID,我必须首先将过滤器传递给 filterGroups 方法,而不是只将过滤器传递给 PublicSearchRequest()->setFilterGroups() ......显然......

所以,正确的方法现在看起来像这样:

    public function searchCompany($company_domain)
{
    $filter = new \HubSpot\Client\Crm\Companies\Model\Filter();
    $filter->setPropertyName('domain');
    $filter->setOperator('EQ');
    $filter->setValue($company_domain);

    $filterGroup = new \HubSpot\Client\Crm\Companies\Model\FilterGroup();
    $filterGroup->setFilters([$filter]);

    $searchRequest = new \HubSpot\Client\Crm\Companies\Model\PublicObjectSearchRequest();
    $searchRequest->setFilterGroups([$filterGroup]);

    try {
        $response = $this->hubspot_client->crm()->companies()->searchApi()->doSearch($searchRequest);
        return $response['results'][0]['id'];
    } catch (ApiException $e) {
         return "Exception when calling search_api->do_search: " . $e->getMessage();
    }
}

现在响应是返回正确的结果而不是所有公司。

于 2021-11-09T08:30:25.923 回答