Создайте нового пользователя с помощью Freshdesk API в PHP

Это мой код:

        $contact_data = json_encode(array(
           "name"  => "Jimmy Jimmy",
           "email" => "[email protected]",
           "phone" => "555-555-555",
           "mobile"  => "312-312-213"
        ));

        $url = $domain."api/v2/contacts";
        $ch = curl_init($url);
        $header[] = "Content-type: application/json";
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_USERPWD, "$apiKey");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $contact_data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $server_output = curl_exec($ch);
        $info = curl_getinfo($ch);
        $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
        $headers = substr($server_output, 0, $header_size);
        $response = substr($server_output, $header_size);
        if($info['http_code'] == 201) {
            echo "Contact created successfully, the response is given below \n";
            echo "Response Headers are \n";
            echo $headers."\n";
            echo "Response Body \n";
            echo "$response \n";
        } else {
            if($info['http_code'] == 404) {
                echo "Error, Please check the end point \n";
            } else {
                echo "Error, HTTP Status Code : " . $info['http_code'] . "\n";
                echo "Headers are ".$headers."\n";
                echo "Response is ".$response;
            }
        }
        curl_close($ch);

Когда я выполнил этот фрагмент кода, я получил следующее сообщение об ошибке:

Response is {"description":"Validation failed","errors":[{"field":"last_name","message":"It should be a/an String","code":"missing_field"},{"field":"life_cycle_status","message":"It should be a/an String","code":"missing_field"}]}

В документации ничего не упоминается об этих полях: last_name и life_cycle_status для создания нового контакта в freshdesk. Любая идея, что я делаю неправильно? спасибо

[ОБНОВИТЬ]

 $contact_data = json_encode(array(
            "name"  => "Jimmy Jimmy",
            "email" => "[email protected]",
            "phone" => "555-555-555",
            "mobile"  => "312-312-213"
            "life_cycle_status" => "asdasdsa",
            "last_name" =>"dasdasdad"
        ));

С этими новыми элементами я получил это сообщение об ошибке:

Response is {"description":"Validation failed","errors":[{"field":"life_cycle_status","message":"Unexpected/invalid field in request","code":"invalid_field"},{"field":"last_name","message":"Unexpected/invalid field in request","code":"invalid_field"}]}

person Attila Naghi    schedule 29.11.2016    source источник


Ответы (2)


Эти поля не являются стандартными для объекта «Контакт» Freshdesk, но, возможно, они определены как требуемые в бэкэнде (проверьте поля «Администратор» > «Клиент» в бэкэнде Freshdesk).

Это означает, что мы должны определить их как custom_fields, как указано в документации по API Freshdesk здесь.

Это означает, что ваш массив POST будет выглядеть примерно так

$contact_data = json_encode(array(
    'name'  => 'Jimmy Jimmy',
    'email' => '[email protected]',
    'custom_fields' => [
        // put all your custom fields here
        'last_name' => 'Jimmy',
        'life_cycle_status' => 'value'
    ]
));
person Sander Mangel    schedule 30.11.2016

Что ж, у вас уже есть ответ — вы читали это сообщение об ошибке, да?

Ответ:

{
    "description": "Validation failed",
    "errors":[
      {
        "field":"last_name",
        "message":"It should be a/an String",
        "code":"missing_field"
      },
      {
        "field":"life_cycle_status",
        "message":"It should be a/an String",
        "code":"missing_field"
      }
    ]
}

Значение:

last_name и life_cycle_status оба должны быть String и не могут быть пустыми.

person Stuart    schedule 29.11.2016