使用 API 从 HubSpot 列表中获取所有联系人
Get all the contacts from HubSpot list using API
我正在使用联系人 API 但它 returns 最多只能有 250 个联系人。我为下一页使用了 'vidOffset' 参数,但没有成功。
注意:我想使用 API
将 Hubspot 列表中的所有联系人导出到我的本地数据库
这是我的代码 php curl:
function callAPI($method, $url, $data){
$curl = curl_init();
$url = $url.'&property=firstname&property=email&count=5&vidOffset=2';
switch ($method){
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// OPTIONS:
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// EXECUTE:
$result = curl_exec($curl);
if(!$result){die("Connection Failure");}
curl_close($curl);
return $result;
}
// call the function
callAPI('GET', 'https://api.hubapi.com/contacts/v1/lists/11/contacts/all?hapikey=[API key]', false);
我做错了什么吗?或者,如果有更好的方法使用 php/wordpress 联系所有联系人,请分享您的经验。
调用此 API 时,需要注意一些事项。
"has-more" 字段中是否有 "true" 值。这样的话,可以拉的人脉就多了
在您的调用中返回的 "vid-offset" 字段的值。
对于 "has-more",此布尔值指定是否有更多联系人可以通过分页提取。对于"vid-offset",这是一个由API生成的整数,它不需要简单的顺序整数。
此外,您一次只能抓取 5 条记录,您最好抓取最大值,因为它只有 100 条。这将限制您需要进行的调用次数。
最后,您可能只想将这些添加到一个文件中,然后您可以将其用于任何您想要的,即添加到数据库、下载等。
因此,我的建议是修改您的初始函数以检查 "true" 的 "has-more" 值,如果是,则将 "vid-offset" 值发送到新函数,使另一个电话。在该函数中,您可以继续检查这些值,并且 运行 您的函数需要的次数不限,直到 "has-more" 值变为 false。
// the rest of your function is above
// Decode the result so you can traverse the data
$contacts = json_decode($result);
// Store 'has-more' value
$has_more = $contacts->has-more;
// Check if there are more records
if($has_more) {
// Get the offset number provided by API
$offset = $contacts->vid-offset;
// Get more records
getMore($offset);
} else {
// Complete calls and do something else...
}
}
function getMore($offset) {
// Make cURL call with your your offset value
$url = $url.'&property=firstname&property=email&count=100&vidOffset=' . $offset;
$contacts = json_decode($result);
$has_more = $contacts->has-more;
if($has_more) {
$offset = $contacts->vid-offset;
getMore($offset);
} else {
// Complete calls and do something else...
}
}
documentation that they provide is actually quite clear,所以我也会仔细阅读一下。
我正在使用联系人 API 但它 returns 最多只能有 250 个联系人。我为下一页使用了 'vidOffset' 参数,但没有成功。
注意:我想使用 API
将 Hubspot 列表中的所有联系人导出到我的本地数据库这是我的代码 php curl:
function callAPI($method, $url, $data){
$curl = curl_init();
$url = $url.'&property=firstname&property=email&count=5&vidOffset=2';
switch ($method){
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// OPTIONS:
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// EXECUTE:
$result = curl_exec($curl);
if(!$result){die("Connection Failure");}
curl_close($curl);
return $result;
}
// call the function
callAPI('GET', 'https://api.hubapi.com/contacts/v1/lists/11/contacts/all?hapikey=[API key]', false);
我做错了什么吗?或者,如果有更好的方法使用 php/wordpress 联系所有联系人,请分享您的经验。
调用此 API 时,需要注意一些事项。
"has-more" 字段中是否有 "true" 值。这样的话,可以拉的人脉就多了
在您的调用中返回的 "vid-offset" 字段的值。
对于 "has-more",此布尔值指定是否有更多联系人可以通过分页提取。对于"vid-offset",这是一个由API生成的整数,它不需要简单的顺序整数。
此外,您一次只能抓取 5 条记录,您最好抓取最大值,因为它只有 100 条。这将限制您需要进行的调用次数。
最后,您可能只想将这些添加到一个文件中,然后您可以将其用于任何您想要的,即添加到数据库、下载等。
因此,我的建议是修改您的初始函数以检查 "true" 的 "has-more" 值,如果是,则将 "vid-offset" 值发送到新函数,使另一个电话。在该函数中,您可以继续检查这些值,并且 运行 您的函数需要的次数不限,直到 "has-more" 值变为 false。
// the rest of your function is above
// Decode the result so you can traverse the data
$contacts = json_decode($result);
// Store 'has-more' value
$has_more = $contacts->has-more;
// Check if there are more records
if($has_more) {
// Get the offset number provided by API
$offset = $contacts->vid-offset;
// Get more records
getMore($offset);
} else {
// Complete calls and do something else...
}
}
function getMore($offset) {
// Make cURL call with your your offset value
$url = $url.'&property=firstname&property=email&count=100&vidOffset=' . $offset;
$contacts = json_decode($result);
$has_more = $contacts->has-more;
if($has_more) {
$offset = $contacts->vid-offset;
getMore($offset);
} else {
// Complete calls and do something else...
}
}
documentation that they provide is actually quite clear,所以我也会仔细阅读一下。