Php 如何使用freshdesk api创建带有附件的票证?
我正在使用freshdesk,我正在尝试使用API发送带有附件的票证。我根据示例代码创建了包含自定义字段和不包含自定义字段的票证,但在创建包含附件的票证时遇到了问题。我不知道我做这件事的方向是否正确,有人能帮忙吗?我会非常感激的。多谢各位 `Php 如何使用freshdesk api创建带有附件的票证?,php,api,freshdesk,Php,Api,Freshdesk,我正在使用freshdesk,我正在尝试使用API发送带有附件的票证。我根据示例代码创建了包含自定义字段和不包含自定义字段的票证,但在创建包含附件的票证时遇到了问题。我不知道我做这件事的方向是否正确,有人能帮忙吗?我会非常感激的。多谢各位 ` `在请求的标题中,内容类型应为多部分/表单数据 使用产品API只能附加本地计算机上的文件 对于带有附件的创建/更新请求,内容类型都应在上面 附加文件后会保留文件名,即响应中发送的文件名将与请求中的文件名相同 需要更多的帮助 PS:如果编程语言有任何问题
`在请求的标题中,
内容类型应为多部分/表单数据
- 使用产品API只能附加本地计算机上的文件
- 对于带有附件的创建/更新请求,内容类型都应在上面
- 附加文件后会保留文件名,即响应中发送的文件名将与请求中的文件名相同
- 需要更多的帮助
PS:如果编程语言有任何问题,我不是php开发人员
$api_key = $APIKEY;
$password = $PASSWORD;
$yourdomain = $DOMAIN;
$selectvalue = $_POST["inquiryselect"];
$selectvalue2 = $_POST["inquiryselect2"];
$message = $_POST["message"];
$fullname = $_POST["fullname"];
$contact = $_POST["contact"];
$email = $_POST["email"];
$custtype = $_POST["customer-type"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$clientproject = $_POST['customer-project'];
/* File Variables */
$file = $_FILES['user-upload'];
$fileName = $_FILES['user-upload']['name'];
$fileTmpName = $_FILES['user-upload']['tmp_name'];
$fileSize = $_FILES['user-upload']['size'];
$fileError = $_FILES['user-upload']['error'];
$fileType = $_FILES['user-upload']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$fileUniqueID = uniqid('', true).".".$fileActualExt;
echo $fileUniqueID;
$allowed = array('jpg', 'jpeg', 'png', 'pdf');
/* File Variable End */
if ($selectvalue == "Request")
{
$custom_fields = array("cf_concern_type" => $selectvalue,
"cf_customer_type" => $custtype,
"cf_concern2" => $selectvalue2,
"cf_customer_role" => "External",
"cf_project" => $clientproject,
);
$ticket_data = json_encode(array(
"name" => $fullname,
"phone" => $contact,
"subject" => $subject,
"description" => $message,
"email" => $email,
"custom_fields" => $custom_fields,
"priority" => 1,
"status" => 2,
'attachments[]' => curl_file_create($fileTmpName, $fileType, $fileName)
));
$url = $URL;
$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, "$api_key:$password");
curl_setopt($ch, CURLOPT_POSTFIELDS, $ticket_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 "Ticket created successfully";
} else {
if($info['http_code'] == 404) {
echo "There was a problem submitting your form.";
} else {
echo "Error, HTTP Status Code : " . $info['http_code'] . "\n";
echo "Headers are ".$headers;
echo "Response are ".$response;
}
}
curl_close($ch);
}