function gform_create_zendesk_ticket($entry, $form)
{
    $binaryFile = file_get_contents(rgar($entry, '15'));
    $ext = pathinfo(rgar($entry, '15'), PATHINFO_EXTENSION);
    // Upload field ID
    $upload = curlUpload("/uploads.json", $binaryFile, 'upload.' . $ext);
    // Attachments will have the prettyname screenshot.[$ext]
    $token = $upload['upload']['token'];
    $create = json_encode(array('ticket' => array('subject' => rgar($entry, '5'), 'priority' => 'normal', 'comment' => array('body' => rgar($entry, '6'), 'uploads' => $token), 'requester' => array('name' => rgar($entry, '2.3') . ' ' . rgar($entry, '2.6'), 'email' => rgar($entry, '4')))));
    return curlWrap("/tickets.json", $create, "POST");
}
<?php

//Let's require the configuration
require_once 'fb-config.php';
//Let's make things secure
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_USER'] == PHP_AUTH_USER && $_SERVER['PHP_AUTH_PW'] == PHP_AUTH_PW) {
    // We're in!
    $ticket_id = $_POST['ticket_id'];
    // 1 - We will check which page does this come from. For that we will retrieve the ticket first:
    $ticket = curlWrap("/tickets/" . $ticket_id . ".json", NULL, "GET");
    $facebook_id = $ticket->ticket->via->source->to->facebook_id;
    $facebook_tag = $facebook_pages[$facebook_id];
    // 2 - Update ticket with tag
    $object = array("ticket" => array("custom_fields" => array("id" => CUSTOM_FIELD_ID, "value" => $facebook_tag)));
    $request = curlWrap("/tickets/" . $ticket_id . ".json", json_encode($object), "PUT");
} else {
    // Your credentials are not valid.
    header("HTTP/1.1 401 Unauthorized");
    exit;
}
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, "https://" . ZD_SUBDOMAIN . ".zendesk.com/api/v2" . $url);
    curl_setopt($ch, CURLOPT_USERPWD, ZD_EMAIL . "/token:" . ZD_TOKEN);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    switch ($action) {
        case "POST":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
<?php

define("ZDAPIKEY", "E1pjHWn9hlDb44miyxbM9KP4p18uDM224MemOqT8");
define("ZDUSER", "*****@*****.**");
define("ZDURL", "https://foss4g.zendesk.com/api/v2");
function curlWrap($url, $json)
{
    $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);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    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;
}
foreach ($_POST as $key => $value) {
    if (preg_match('/^z_/i', $key)) {
        $arr[strip_tags($key)] = strip_tags($value);
    }
}
$create = json_encode(array('ticket' => array('subject' => $arr['z_subject'], 'comment' => array("body" => $arr['z_description']), 'requester' => array('name' => $arr['z_name'], 'email' => $arr['z_requester']))));
$return = curlWrap("/tickets.json", $create);
header('Location: ' . $_SERVER['HTTP_REFERER']);
Example #4
0
    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_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);
    $decoded = json_decode($output);
    return $decoded;
}
$data = curlWrap("/tickets.json", $json, "POST");
Example #5
0
    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;
        default:
            break;
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
    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;
}
foreach ($_POST as $key => $value) {
    if (preg_match('/^z_/i', $key)) {
        $arr[strip_tags($key)] = strip_tags($value);
    }
}
$create = json_encode(array('ticket' => array('subject' => $arr['z_subject'], 'comment' => array("body" => $arr['z_description']), 'requester' => array('name' => $arr['z_name'], 'email' => $arr['z_requester']))));
$return = curlWrap("/tickets.json", $create, "POST");
Example #6
0
            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_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);
    $decoded = json_decode($output);
    return $decoded;
}
// CREATE AN ARRAY WITH POST DATA AND DESIRED TICKET CONTENT/ATTRIBUTES
$arr = array("new_req_name" => 'Tim Foster', "new_req_email" => '*****@*****.**', "new_tick_assignee" => "279358764", "new_tick_subj" => 'New Order Test Test Test', "new_tick_desc" => 'Test Description');
// CREATE JSON FORMATTED VARIABLE TO PASS AS PARAMETER TO API
$create = json_encode(array('ticket' => array('requester' => array('name' => $arr['new_req_name'], 'email' => $arr['new_req_email']), 'group_id' => $arr['new_tick_group'], 'assignee_id' => $arr['new_tick_assignee'], 'subject' => $arr['new_tick_subj'], 'description' => $arr['new_tick_desc'])), JSON_FORCE_OBJECT);
$data = curlWrap("/tickets.json", $create, "POST");
var_dump($data);
print $data->ticket->id;
print "\n";
    $response = curlWrap("/tickets.json", json_encode(array("ticket" => array("subject" => "New Phone Call From " . $phone, "comment" => array("body" => "Call made at " . date('r')), "requester_id" => $response['user']['id']))), "POST");
} else {
    if ($response['count'] > 0) {
        function filterAnon($elem)
        {
            $bool = strpos($elem['name'], "Unknown") === false && strpos($elem['name'], "Anonymous") === false;
            return $bool;
        }
        //filter out unknown and anonymous users
        $known = array_values(array_filter($response['results'], 'filterAnon'));
        if (sizeof($known) > 0) {
            //new ticket with known user as requestor
            $knownUser = $known[0];
            $response = curlWrap("/tickets.json", json_encode(array("ticket" => array("subject" => "New Phone Call From " . $knownUser['name'] . " | " . $phone, "comment" => array("body" => "Call came in at " . date('r')), "requester_id" => $knownUser['id']))), "POST");
        } else {
            //new ticket with existing unknown user as requestor
            $response = curlWrap("/tickets.json", json_encode(array("ticket" => array("subject" => "New Phone Call From " . $phone, "comment" => array("body" => "Call came in at " . date('r')), "requester_id" => $response['results'][0]['id']))), "POST");
        }
    }
}
// openvbx code below
// $primary is getting the url created by what ever applet was put
// into the primary dropzone
$primary = AppletInstance::getDropZoneUrl('primary');
// As long as the primary dropzone is not empty add the redirect
// twiml to $response
if (!empty($primary)) {
    $tResponse->redirect($primary);
}
// This will create the twiml for hellomonkey
$tResponse->respond();