Příklady volání API Drak
Všechno důležité dění okolo API. Odebírej náš Sklik API newsletter.
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); }