【问题标题】:Create new user using the Freshdesk API in PHP在 PHP 中使用 Freshdesk API 创建新用户
【发布时间】:2016-11-29 09:44:01
【问题描述】:

这是我的代码:

        $contact_data = json_encode(array(
           "name"  => "Jimmy Jimmy",
           "email" => "jimmy@example.com",
           "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" => "jimmy@example.com",
            "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"}]}

【问题讨论】:

    标签: php freshdesk


    【解决方案1】:

    这些字段不是 Freshdesk 联系人实体的默认字段,但可能在后端根据需要定义(检查管理 > Freshdesk 后端的客户字段)

    这意味着我们必须将它们定义为 custom_fields,如 Freshdesk API 文档 here 中所述。

    这意味着你的 POST 数组看起来像这样

    $contact_data = json_encode(array(
        'name'  => 'Jimmy Jimmy',
        'email' => 'jimmy@example.com',
        'custom_fields' => [
            // put all your custom fields here
            'last_name' => 'Jimmy',
            'life_cycle_status' => 'value'
        ]
    ));
    

    【讨论】:

      【解决方案2】:

      嗯,你已经有了答案 - 你确实读过那个错误信息是吗?

      回复:

      {
          "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_namelife_cycle_status 都必须是String,并且不能为空。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多