繁体   English   中英

无法从 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似乎没有从我的 API 查询中返回任何内容。 但是firstNamelastNamecompanyName都可以正常工作。 我之前在检索 email 时遇到了一些麻烦,并在网上找到了解决方案。

任何想法为什么我的查找和分配 Hubspot 地址信息的代码不起作用?

这是我当前的 URL 查询(两个 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 中包含所需的属性。 根据文档

默认情况下,响应数据中只会包含几个标准属性。 如果您包含 'property' 参数,那么您将改为在响应中获取指定的属性。 可以多次包含此参数以指定多个属性。

您似乎错误地在 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 将很快被更新的 CRM API 取代,因此,如果这是一个新项目,您可能不想使用旧的 API 调用在代码中投入太多工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM