0

Clio seems to have no solution but to ask it here. So here I go.

I have the display number and I want to query the Matter ID. This does not seem to be possible unless I do I x-bulk query the loop throw the results.

Does anyone have a simple query to do this?

here is what I have for PHP so far.

function matter_one ( $token,$refresh_toke ) {
    $header = 'Authorization: bearer '.$token."\r\n";
    //echo $header."\r\n";
    $offset = 0;
    $url = 'https://app.clio.com/api/v4/matters.json?&fields=id,description,display_number';
    //echo $url."\r\n";
    $ch = curl_init();
    //curl_setopt($ch, CURLOPT_VERBOSE, true); //used for trouble shooting.
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $resp = curl_exec($ch);
    print "curl response is:" . $resp;
    die();
4

3 回答 3

1

有更好的方法,使用 https://app.clio.com/api/v4/matters?fields=id,display_number&query=100140

您将需要循环并检查显示编号是否实际匹配,因为 100140 和 100140B 和 10014000 也会返回。

于 2017-11-29T23:17:00.310 回答
0

如果问题是您不想在这里执行 x-bulk 代码,它将提取所有信息,您可以修改代码以在每个页面返回的数据中查找项目或在最终数组中查找。

    function performListRequestAllMatters()
{
    $header = 'Authorization: bearer ' . $this->token;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $this->base . $this->API_version . 'matters' . '?fields=id,display_number');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $response = curl_exec($ch);

    if (!$response) {
        die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
    } elseif (200 != curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
        echo "Bad Response Code!";
        echo "\n";
        echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
        echo "\n";
        echo "Response HTTP Body : " . $response;
    } else {

        $json = json_decode($response, true);
        $list = $json['data'];

        while (isset($json['meta']['paging']['next'])) {
            // process a new request until all pages have been retrieved
            curl_setopt($ch, CURLOPT_URL, $json['meta']['paging']['next']);

            $response = curl_exec($ch);
            $json = json_decode($response, true);
            $newList = $json['data'];

            $list = array_merge($list, $newList);
        }

    }
    curl_close($ch);

    return $list;
}
于 2017-11-21T21:32:39.880 回答
0

如果有 10,000 多条记录,则必须使用批量。此功能非常适合获取所有记录。然后你可以找到你需要的任何号码。

function matter_ID_display ( $token,$refresh_toke ) {
            // this returns all the matter ID and display name

            //adding X-BULK
            $header = 'Authorization: bearer '.$token."\r\n"."X-BULK: true";
            //echo $header."\r\n";
            $offset = 0;
            $url = 'https://app.clio.com/api/v4/matters.json?offset='.$offset.'&fields=id,display_number';
            $cookie_jar = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies.txt';
            $cookie_jar2 = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies2.txt';
            //echo $url."\r\n";
            $ch = curl_init();
            //curl_setopt($ch, CURLOPT_VERBOSE, true); //used for trouble shooting.
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_HEADER, true);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $resp = curl_exec($ch);
            //print "curl response is:" . $resp;
            if( !$resp ) {
                die('Error: "' . curl_error( $ch ) . '" - Code: ' . curl_errno( $ch ) );
            }

            else if ( 200 != curl_getinfo( $ch, CURLINFO_HTTP_CODE ) ) {
                echo "Expected code 202";
                echo "\n";
                echo "Response HTTP Status Code : " . curl_getinfo( $ch, CURLINFO_HTTP_CODE );
                echo "\n";
                //echo "Response HTTP Body : " . $resp;
            }

            //$resp = json_encode($resp);
            $headers = get_headers_from_curl_response($resp);
            //$headers = json_encode($headers);
            //print_r ($headers);
            $url = $headers["Location"];
            echo "url for getting the bulk data\r\n";
            echo $url."\r\n";
            echo "\n";

            curl_close($ch);
            //sleep for x seconds
            //have to sleep due to processing at clio
                $seconds = 20;
                echo "Sleeping for ".$seconds." seconds\r\n";
                sleep($seconds);
                echo "\n";  
        // seperate curl_
                $curl = curl_init();

                curl_setopt_array($curl, array(
                  CURLOPT_URL => $url,
                  CURLOPT_COOKIEJAR => $cookie_jar2,    
                  CURLOPT_COOKIEFILE=> $cookie_jar2,
                  CURLOPT_CUSTOMREQUEST => "GET",
                  CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
                  CURLOPT_SSL_VERIFYPEER => false,     // Disabled SSL Cert checks
                  CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                  CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                  CURLOPT_ENCODING => "",  // handle all encodings
                  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                  CURLOPT_RETURNTRANSFER => true, // return web page
                 ));

                $response = curl_exec($curl);
                $err = curl_error($curl);

                curl_close($curl);
                if ($err) {
                  echo "cURL Error #:" . $err;
                } else {
                      echo 'Curled first time';
                      echo "\n";
                      // have to curl two times one without authorization
                        echo "\n";
                        Echo "cURL repeat";
                        echo "\n";
                        $curl = curl_init();

                            curl_setopt_array($curl, array(
                            CURLOPT_URL => $url,
                            CURLOPT_COOKIEJAR => $cookie_jar2,  
                            CURLOPT_COOKIEFILE=> $cookie_jar2,
                            CURLOPT_CUSTOMREQUEST => "GET",
                            //CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
                            CURLOPT_SSL_VERIFYPEER => false,     // Disabled SSL Cert checks
                            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                            CURLOPT_ENCODING => "",  // handle all encodings
                            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                            CURLOPT_RETURNTRANSFER => true, // return web page
                            ));

                            $response = curl_exec($curl);
                            $err = curl_error($curl);
                        curl_close($curl);
                        if ($err) {
                            echo "cURL Error #:" . $err;
                        } else 
                            {echo 'Good Reponse from Curl second time';
                            echo "\n";}
                    }

                $response_Decode = json_decode($response);
                //print_r ($response_Decode);

                    // got the data. Now just need to turn to a clean array and save to file.
                    //die('Before Array clean up');

            //clean and make into an array
                $response_Decode=$response_Decode->data;
                $response_Decode=$response_Decode[0];
                //print_r ($response_Decode);
                //die(); //For testing
                $matter_array = array();     
                if(!empty($response_Decode->data) && is_array($response_Decode->data)) {
                    foreach ($response_Decode->data as $info) {
                        $d = array();
                        $d[] = $info->display_number;
                        $d[] = $info->id;
                        $matter_array[] = $d;
                    }
                }

                print_r($matter_array);  //For testing
                die(); //For testing

            //matter_array is a full array of all matter ID and Matter Display numbers  
            return $matter_array; }
于 2017-11-29T15:34:02.160 回答