2

PHP curl メソッドで zendesk チケットを更新したい件名と説明フィールドを更新したい。または、独自のチケット ID を持ち、チケットの作成中にそれを渡すことができるものはありますか。

次のコードを使用してチケットを更新していました。

$create = json_encode(array('ticket' => array('subject' => $arr['z_subject'], 'description' => $arr['z_description'], 'requester' => array('name' => $arr['z_name'], 'email' => $arr['z_requester'],'custom_fields' => $custom_fields))), JSON_FORCE_OBJECT);

//new ticket
$data = curlWrap("/tickets.json", $create, "POST");

$ticket_id = $data->ticket->id;

$arr['z_description'] = $arr['z_description'] . " " . $ticket_id;
$arr['z_subject'] = $arr['z_subject'] . " " . $ticket_id;

print_r($arr);
echo "<br /><br />";

$create = json_encode(array('ticket' => array('subject' => $arr['z_subject'], 'description' => $arr['z_description'])));
$ticketid="/tickets/" . $ticket_id . ".json";

print $ticketid ."<br />";
//updating ticket
$data = curlWrap($ticketid, $create, "PUT");
var_dump($data);

function curlWrap($url, $json, $action)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
    curl_setopt($ch, CURLOPT_URL, ZDURL.$url);
    curl_setopt($ch, CURLOPT_USERPWD, ZDUSER."/token:".ZDAPIKEY);

    switch($action){
        case "POST":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
            break;
        case "GET":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
            break;
        case "PUT":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
            curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
            break;
        case "DELETE":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
            break;
        default:
            break;
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);
    $decoded = json_decode($output);
    return $decoded;
}
4

1 に答える 1

0

ここでわかるように、Zendesk Core APIの件名は投稿した最初のコメントにすぎないため、件名を変更することはできません。しかし、あなたの質問で述べたように、説明のためにそれを行うことができます。

これが役立つ場合は、チケットを作成するたびに、ID とその他の情報を含むポストバック メッセージを受信します (ここでチケットの作成を参照してください) 。

于 2015-09-29T16:10:43.213 に答える