ПланФикс API: Пример получения списка проектов на php — различия между версиями
Материал из ПланФикс
								
												
				Seva (обсуждение | вклад)  | 
				Seva (обсуждение | вклад)   | 
				||
| Строка 12: | Строка 12: | ||
<source lang="php">  | <source lang="php">  | ||
<?php  | <?php  | ||
| + | <?php  | ||
| + | |||
$api_server = 'https://api.planfix.ru/xml/';  | $api_server = 'https://api.planfix.ru/xml/';  | ||
$api_key = 'APIKey-ВАШЕГО_ПРИЛОЖЕНИЯ';//    | $api_key = 'APIKey-ВАШЕГО_ПРИЛОЖЕНИЯ';//    | ||
$api_token = 'ТОКЕН_АВТОРИЗАЦИИ';  | $api_token = 'ТОКЕН_АВТОРИЗАЦИИ';  | ||
| − | |||
| − | |||
| − | |||
/** получаем список доступных нам проектов и выводим его  | /** получаем список доступных нам проектов и выводим его  | ||
  * используем функции на: http://goo.gl/E41Vv  |   * используем функции на: http://goo.gl/E41Vv  | ||
  */  |   */  | ||
| − | $requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account  | + | $requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account></request>');  | 
| − | $requestXml->account =   | + | |
| + | $requestXml->account = 'your_account';  | ||
$requestXml->pageCurrent = 1;  | $requestXml->pageCurrent = 1;  | ||
// остальные параметры являются необязательными, поэкспериментируйте сами  | // остальные параметры являются необязательными, поэкспериментируйте сами  | ||
| − | $  | + | $ch = curl_init($api_server);  | 
| − | + | ||
| − | + | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // не выводи ответ на stdout  | |
| − | + | curl_setopt($ch, CURLOPT_HEADER, 1);   // получаем заголовки  | |
| − | + | // не проверять SSL сертификат  | |
| − | $  | + | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  | 
| − | + | // не проверять Host SSL сертификата  | |
| − | $  | + | curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  | 
| − | $  | + | |
| − | + | curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);  | |
| − | echo   | + | curl_setopt($ch, CURLOPT_USERPWD, $api_key . ':'.$api_token);  | 
| + | |||
| + | curl_setopt($ch, CURLOPT_POST, true);  | ||
| + | curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml->asXML());  | ||
| + | echo $requestXml->asXML();  | ||
| − | + | $response = curl_exec($ch);  | |
| − | + | $error = curl_error($ch);  | |
| − | + | var_dump($error);  | |
| − | + | ||
| + | $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);  | ||
| + | $responseBody = substr($response, $header_size);  | ||
| + | |||
| + | curl_close($ch);  | ||
| + | |||
| + | var_dump($responseBody);  | ||
?>  | ?>  | ||
| + | |||
</source>  | </source>  | ||
Версия 14:11, 15 июля 2019
Простой пример получения списка проектов и вывод его. Из примера становится ясно назначение параметра sid.
<?php
<?php
$api_server = 'https://api.planfix.ru/xml/';
$api_key = 'APIKey-ВАШЕГО_ПРИЛОЖЕНИЯ';// 
$api_token = 'ТОКЕН_АВТОРИЗАЦИИ';
/** получаем список доступных нам проектов и выводим его
 * используем функции на: http://goo.gl/E41Vv
 */
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account></request>');
$requestXml->account = 'your_account';
$requestXml->pageCurrent = 1;
// остальные параметры являются необязательными, поэкспериментируйте сами
$ch = curl_init($api_server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // не выводи ответ на stdout
curl_setopt($ch, CURLOPT_HEADER, 1);   // получаем заголовки
// не проверять SSL сертификат
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// не проверять Host SSL сертификата
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $api_key . ':'.$api_token);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml->asXML());
echo $requestXml->asXML();
$response = curl_exec($ch);
$error = curl_error($ch);
var_dump($error);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$responseBody = substr($response, $header_size);
curl_close($ch);
var_dump($responseBody);
?>
