APIs & Integrations

kyleffotf
メンバー

400 Response on contact update endpoint.

解決

I'm using the hubspot-api-php package

 

Trying to call the update endpoint

 

 

 

 

PATCH
/crm/v3/objects/contacts/{contactId}

 

 

 

 

 

This is what the hubspot developer docs uses as an example:

 

 

 

 

<?php
use HubSpot\Factory;
use HubSpot\Client\Crm\Contacts\ApiException;

$client = Factory::createWithApiKey("YOUR_HUBSPOT_API_KEY");

$properties = [
    "company" => "Biglytics",
    "email" => "bcooper@biglytics.net",
    "firstname" => "Bryan",
    "lastname" => "Cooper",
    "phone" => "(877) 929-0687",
    "website" => "biglytics.net"
];
$SimplePublicObjectInput = new SimplePublicObjectInput(['properties' => $properties]);
try {
    $apiResponse = $client->crm()->contacts()->basicApi()->update("433380577", $SimplePublicObjectInput);
    var_dump($apiResponse);
} catch (ApiException $e) {
    echo "Exception when calling basic_api->update: ", $e->getMessage();
}

 

 

 

 

 

This is my implementation:

 

 

 

 

function update_contact( $contact_id, $properties )
    {
$client = Factory::createWithAccessToken(get_option('hs_api'));

$SimplePublicObjectInput = new SimplePublicObjectInput(['properties' => $properties]);
        try {
            $apiResponse = $client->crm()->contacts()->basicApi()->update($contact_id, $SimplePublicObjectInput);
            error_log(print_r($apiResponse,true));
        } catch (ApiException $e) {
            error_log("Exception when calling basic_api->update: ". $e->getMessage());
        }
}

 

 

 

 

Note that $properties looks like this when inspected:

 

 

 

 Array
(
    [address] => 123 Main St
    [address_2] => P.O. 12
    [city] => Vancouver
    [email] => email@example.com
    [firstname] => Kyle
    [lastname] => 
    [mobilephone] => (877) 929-0687
    [province] => 
    [zip] => 
)

 

 

 

 

This is the response:

 

 

 

Exception when calling basic_api->update: [400] Client error: `PATCH https://api.hubapi.com/crm/v3/objects/contacts/[the contact id]` resulted in a `400 Bad Request` response:
{"status":"error","message":"No properties found to update, please provide at least one.","correlationId":"be4a7ab7-2069 (truncated...)

 

 

 

 

The endpoint with the same properties and contact id works when using Postman, and also when using the "test call" feature in the API documentation.

 

Am I doing something wrong?

 

0 いいね!
1件の承認済みベストアンサー
kyleffotf
解決策
メンバー

400 Response on contact update endpoint.

解決

Hi SMarquez,

 

I solved this by forgoing the HubSpot package and using PHP curl functions instead. This is my implementation for updating contacts:

function update_contact( $contact_id, $properties, $subscribed )
    {
$params = json_encode(
            [
                'properties' => $properties
            ]
        );

        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://api.hubapi.com/crm/v3/objects/contacts/" . $contact_id,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "PATCH",
            CURLOPT_POSTFIELDS => $params,
            CURLOPT_HTTPHEADER => array(
                "Authorization: Bearer " . get_option('hs_api'),
                "accept: application/json",
                "content-type: application/json"
            ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);
}

I used curl functions for all updates, subscribes, and unsubscribe interations, as the package just wasn't working. The package does work when using the search api, however.

元の投稿で解決策を見る

0 いいね!
3件の返信
Jaycee_Lewis
コミュニティーマネージャー
コミュニティーマネージャー

400 Response on contact update endpoint.

解決

Hi, @kyleffotf 👋 Thanks for reaching out. Let's see if we can get the conversation started — @himanshurauthan do you have any PHP magic you can share?

 

Thank you!  — Jaycee

linkedin

Jaycee Lewis

Developer Community Manager

Community | HubSpot

SMarquez
メンバー

400 Response on contact update endpoint.

解決

I have the same error, what is the solution?

0 いいね!
kyleffotf
解決策
メンバー

400 Response on contact update endpoint.

解決

Hi SMarquez,

 

I solved this by forgoing the HubSpot package and using PHP curl functions instead. This is my implementation for updating contacts:

function update_contact( $contact_id, $properties, $subscribed )
    {
$params = json_encode(
            [
                'properties' => $properties
            ]
        );

        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://api.hubapi.com/crm/v3/objects/contacts/" . $contact_id,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "PATCH",
            CURLOPT_POSTFIELDS => $params,
            CURLOPT_HTTPHEADER => array(
                "Authorization: Bearer " . get_option('hs_api'),
                "accept: application/json",
                "content-type: application/json"
            ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);
}

I used curl functions for all updates, subscribes, and unsubscribe interations, as the package just wasn't working. The package does work when using the search api, however.

0 いいね!