我正在尝试使用Import API导入一些联系人。
我使用的是他们的Sample CSV file的一个过于简化的版本,看起来像这样:
| 联系我们|最后的名字|电子邮件地址|
| - -----|- -----|- -----|
| 洛雷莱|吉尔摩|lorelai@thedragonfly.com|
| 莱斯利|克诺普|leslie@pawneeparks.com|
| 埃莉诺|谢尔斯特罗普|eleanor@thegoodplace.com|
我尝试了几种使用Postman或Guzzle
的请求变体(我的实现是用PHP编写的)。每次我得到一个400错误:POST https://api.hubapi.com/crm/v3/imports/ resulted in a 400 Bad Request response
以下是请求的简化版本:
<?php
$client = new Client();
$headers = [
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'Authorization' => 'Bearer xxx-xxx-xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
];
$options = [
'multipart' => [
[
'name' => 'files',
'contents' => Utils::tryFopen('/path/to/file/HubSpot example - Contacts import file.csv', 'r'),
'filename' => '/path/to/file/HubSpot example - Contacts import file.csv'
],
[
'name' => 'importRequest',
'contents' => '{"name":"customers_import","files":[{"fileName":"/path/to/file/HubSpot example - Contacts import file.csv","fileFormat":"CSV","fileImportPage":{"hasHeader":true,"columnMappings":[{"ignored":false,"columnName":"First Name","idColumnType":null,"propertyName":"firstname","columnObjectType":"CONTACT"},{"ignored":false,"columnName":"Last Name","idColumnType":null,"propertyName":"lastname","columnObjectType":"CONTACT"},{"ignored":false,"columnName":"Email Address","idColumnType":null,"propertyName":"email","columnObjectType":"CONTACT"}]}}]}'
]
]];
$request = new Request('POST', 'https://api.hubapi.com/crm/v3/imports/', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();
其他我尝试过的东西:
- 将
columnObjectType
更改为columnObjectTypeId
:0-1 - 仔细检查了授权令牌和所需的权限,一切都应该很好(我在没有正确权限的情况下得到401)。
- 已检查该文件在不使用Postman时是否可由PHP脚本访问和读取。
- 各种不同的接头。
- 正在尝试从Excel文件导入数据。
- 将上面提到的其余参数添加到
importRequest
(似乎没有什么区别):
//...
"importOperations" => [
"0-1" => "CREATE"
],
"dateFormat" => "DAY_MONTH_YEAR",
"marketableContactImport" => true,
//...
我正在寻找一个简单的样品要求,只是工作。
1条答案
按热度按时间laik7k3q1#
问题是
importRequest
JSON内容中的fileName
属性。该值不应包括路径。