Nápověda menu

Příklady volání API Drak

Pro snadnější implementaci našeho Sklik API rozraní jsme si pro vás připravili vzorové příklady v nejčastěji používaných jazycích.

Příklady jsou dostupné i na Seznam githubu.

Python [JSON]

from requests import post 
import json 

class JsonSklik: 
    def login(self): 
        response = post("https://api.sklik.cz/drak/json/client.loginByToken",json=("")) 
        res = response.json() 
        if res["status"] == 200: 
            self.session = res["session"] 
            return True 
            else: 
                return False 
                
                """ 
                Volani metody 
                @return |Boolen 
                
                Other examples and date types 
                OBJECT - "group":{"status":["active","suspend"],"isDeleted":False} 
                ARRAY - 'ids': [1297587,123932] 
                STRING[] - "displayColumns":["id","name"] 
                import base64 
                square = open('300_300.jpg',"rb").read().encode('base64') 
                BINARY - 'image': square 
                
                """ 
                def request(self): 
                    if self.login(): 
                        response = response = post('https://api.sklik.cz/drak/json/ads.createReport', json=[{"session":self.session}, 
                        {"dateFrom":"2018-01-22", 
                        "dateTo":"2018-02-23"} 
                        ]) 
                        return response.json() 
                        else: 
                            return False 
                            
                            example = JsonSklik() 
                            print example.request()

PHP [JSON]

<?php 

/** 
 * API DRAK JSON
 * Čisté volání API DRAK přes JSON pomocí nativních metod PHP
 */ 
class JsonSklik { 
    /** 
     * Session - Po přihlášení je vyžadované u každého volání pro autentizaci 
     * @var string
     */ 
    protected $session = ''; 
    /** 
     * URL pro volání dotazu - API verze DRAK 
     * @var string 
     */ 
    protected $url = 'https://api.sklik.cz/drak/json/'; 
    /** 
    * Zavolání XML dotazu 
    * @param string $url - kompletní adres 
    * @param string $request - XML dotaz (ve formátu XML-RCP) 
    * @see https://cs.wikipedia.org/wiki/XML-RPC#T%C4%9Blo 
    * @return string 
    */ 
    protected function call($url, $request) { 
        $header[] = "Content-type: application/json"; 
        $header[] = "Content-length: " . strlen($request); 
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_POST, 
        1); curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 

        $data = curl_exec($ch); 
        if (curl_errno($ch)) { 
            return curl_error($ch); 
            } else { curl_close($ch);
             return $data; 
             } 
             } 
             /** 
            * Přihlášení uživatele pomocí uživatelského jména a hesla 
            */ 
            public function login() { 
                $ses = array(); 
                $request = json_encode( 
                    array('') 
                    ); 
                    $response = $this->call($this->url.'/client.loginByToken', $request);
                     $response = json_decode($response); 
                     if(isset($response->session)) { 
                        $this->session = $response->session; 
                        } 
                       } 
                        /** 
                        * Volání metody. 
                        * @return mixed 
                        */ 
                        public function request() { 
                            $this->login(); 
                            $method = 'client.stats'; 
                            $request = json_encode( 
                                array( 
                                    array('session'=>$this->session), 
                                    array( 
                                        'dateFrom' => '2017-02-20', 
                                        'dateTo' => '2017-02-22', 
                                        'granularity' => 'total'
                            ) 
                      ) 
                  ); 
                  $response = $this->call($this->url.'/'.$method, $request); 
                  return json_decode($response); 
      } 
    } 
    $test = new JsonSklik(); 
    echo $test->request(); 
    ?>

JavaScript [JSON]

/** 
 *Call API method 
 * @param {String} method - API method 
 * @param {Object} parameters - parametrs for API method 
 * @param {String} callback - Callback method after success API call 
 * @param {Mixed} params - variables which will be push to callback method 
 */ 
function sklikApi(method, parameters, callback, params) { 
    $.ajax({ 
        contentType: 'application/json', 
        method: 'POST', 
        dataType: "json", 
        url: 'https://api.sklik.cz/drak/json/' + method, 
        data: JSON.stringify(parameters)
     }).done(function (response) { 
        if (response.session) { 
            session = response.session; 
            if (callback) { 
                callback(response, params); 
            } 
        } else { 
            return false; 
     } 
    }).fail(function (jqXHR, textStatus) { 
        return false; 
    }); 
} 
/** 
 * Login user by Token 
 */ 
function loginByToken() { 
    //############# TOKEN 
    var token = ''; 
    var userId = [010]; 
 sklikApi('client.loginByToken', token, createReport, { 'userIds': userId }); 
} 
/** 
 * Create method by API 
 * @param {Object} parameters 
 */ 
function createReport(response, parameters) { 
    var params = 
    [{ 'session': session, 'userId': parameters.userId }, 
        { 
        'campaign': { 'status': ['active'] }, 
        'group': { 'status': ['active'] }, 
        'dateFrom': '2018-01-08', 
        'dateTo': '2018-02-08' 
    }, 
    {'statGranularity': 'monthly' } 
]; 
sklikApi( 
    'keywords.createReport', 
    params, 
    printer, 
    parameters 
); 
} 
/** 
* Print createReports response 
* @param {Object} response 
* @param {Object} parameters 
*/ 
function printer(response, parameters) { 
    console.log(response.totalCount); 
}

Potřebujete další pomoc?

Pokud si stále nevíte rady, obraťte se na naše specialisty. 95 % vašich dotazů umíme vyřešit do 2 hodin.