google-apps-script - 无法从 Hubspot 联系人 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";
streetAddress
, cityName
, stateName
,postalCode
似乎没有从我的 API 查询中返回任何内容。但是firstName
,,一切正常lastName
。companyName
我之前在检索电子邮件时遇到了一些麻烦,并在网上找到了解决方案。
任何想法为什么我的查找和分配 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 调用的代码中投入太多工作!
推荐阅读
- javascript - 同一对象上的多个事件侦听器不起作用
- image - 热图像和彩色图像之间的对齐
- c++ - 为什么我应该在 C++ 中使用头文件?
- javascript - 空白布局出现在背景之前。使用确认()
- c# - 如何在 C# 中存储对象的位置
- delphi - 在特定机器上诊断应用程序在启动时崩溃?
- reactjs - 如何调试来自 ReactJs(另一个项目)客户端的 Laravel API 请求?
- shader - eMFCC_ARGB32 到 eMFCC_NV12 转换使图片更亮
- groovy - 在闭包内调用 Groovy 闭包时出现 MissingMethodException
- r - 如何检查 R 中的 replace() 函数中是否存在 NA?