无法从 Hubspot 联系人检索联系人地址数据 API

Unable to retrieve contact address data from Hubspot Contacts API

我正在使用 Google Apps 脚本来访问 Hubspot 联系人 API 并且一切正常:

 var firstName = (item.properties.hasOwnProperty('firstname')) ? item.properties.firstname.value : "NA";
 var lastName = (item.properties.hasOwnProperty('lastname')) ? item.properties.lastname.value : "NA";
 var fullName = firstName + " " + lastName; 
 var companyName = (item.properties.hasOwnProperty('company')) ? item.properties.company.value : "NA";

...但我似乎无法查询与联系人地址相关的任何信息。

 var streetAddress = (item.properties.hasOwnProperty('address')) ? item.properties.address.value : "NA";
 var cityName = (item.properties.hasOwnProperty('city')) ? item.properties.city.value : "NA";
 var stateName = (item.properties.hasOwnProperty('state')) ? item.properties.state.value : "NA";
 var postalCode = (item.properties.hasOwnProperty('zip')) ? item.properties.zip.value : "NA";

streetAddresscityNamestateNamepostalCode 似乎 return 我的 API 查询中没有任何内容。但是 firstNamelastNamecompanyName 都可以正常工作。之前找回邮件有点问题,网上找到了解决方法。

知道为什么我的查找和分配 Hubspot 地址信息的代码不起作用吗?

这是我当前的 URL 查询(两个 URL 具有相同的效果,但最上面的是较新的,我想我是否可以更具体地使用 API,我可以获得正确的属性):

var url_query = API_URL + "/contacts/v1/lists/all/contacts/all?properties=address&properties=firstname&properties=lastname&properties=company&properties=city&properties=state&properties=zip";
//var url_query = API_URL + "/contacts/v1/lists/all/contacts/all";

 response.contacts.forEach(function(item) {
 var vid = item.vid;
  
 var firstName = (item.properties.hasOwnProperty('firstname')) ? item.properties.firstname.value : "NA";
 var lastName = (item.properties.hasOwnProperty('lastname')) ? item.properties.lastname.value : "NA";
 var fullName = firstName + " " + lastName; 
 var companyName = (item.properties.hasOwnProperty('company')) ? item.properties.company.value : "NA";
 var streetAddress = (item.properties.hasOwnProperty('address')) ? item.properties.address.value : "NA";
 var cityName = (item.properties.hasOwnProperty('city')) ? item.properties.city.value : "NA";
 var stateName = (item.properties.hasOwnProperty('state')) ? item.properties.state.value : "NA";
 var postalCode = (item.properties.hasOwnProperty('zip')) ? item.properties.zip.value : "NA";
 Logger.log(fullName,streetAddress,cityName,stateName,postalCode);
 
 var email = "NA";     
  // Not sure why, but a contact might have multiple identity-profiles, we take the firstone
  item['identity-profiles'][0].identities.forEach(function(identity) {
    if (identity.type == "EMAIL") {
      email = identity.value;
    }
  });

这看起来像是一个简单的错误,未在 URL 中包含所需的属性。根据the documentation:

By default, only a few standard properties will be included in the response data. If you include the 'property' parameter, then you will instead get the specified property in the response. This parameter may be included multiple times to specify multiple properties.

您似乎在 URL 中错误地使用了无效的“属性”参数。以下是我将如何调整代码:

var url_query = API_URL + "/contacts/v1/lists/all/contacts/all?property=address&property=firstname&property=lastname&property=company&property=city&property=state&property=zip";

response.contacts.forEach(function(item) {
    var p = item.properties;

    var firstName = (p.hasOwnProperty('firstname')) ? p.firstname.value : "NA";
    var lastName = (p.hasOwnProperty('lastname')) ? p.lastname.value : "NA";
    var fullName = firstName + " " + lastName;
    var companyName = (p.hasOwnProperty('company')) ? p.company.value : "NA";
    var streetAddress = (p.hasOwnProperty('address')) ? p.address.value : "NA";
    var cityName = (p.hasOwnProperty('city')) ? p.city.value : "NA";
    var stateName = (p.hasOwnProperty('state')) ? p.state.value : "NA";
    var postalCode = (p.hasOwnProperty('zip')) ? p.zip.value : "NA";

    var email = "NA";
    // Not sure why, but a contact might have multiple identity-profiles, we take the firstone
    item['identity-profiles'][0].identities.forEach(function(identity) {
        if (identity.type == "EMAIL") {
            email = identity.value;
        }
    });
});

请注意,此 API 将很快被 an updated CRM API 取代,因此如果这是一个新项目,您可能不希望在使用旧 API 的代码中投入太多工作来电!