ПланФикс API: Пример получения списка проектов на php — различия между версиями

Материал из ПланФикс
Перейти к: навигация, поиск
Строка 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 = 'ТОКЕН_АВТОРИЗАЦИИ';
$planfixAccount = 'ВАШ_АККАУНТ';
 
 
include 'lib.php';
 
  
 
/** получаем список доступных нам проектов и выводим его
 
/** получаем список доступных нам проектов и выводим его
 
  * используем функции на: http://goo.gl/E41Vv
 
  * используем функции на: http://goo.gl/E41Vv
 
  */
 
  */
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account><sid></sid></request>');
+
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account></request>');
$requestXml->account = $planfixAccount;
+
 
 +
$requestXml->account = 'your_account';
 
$requestXml->pageCurrent = 1;
 
$requestXml->pageCurrent = 1;
 
// остальные параметры являются необязательными, поэкспериментируйте сами
 
// остальные параметры являются необязательными, поэкспериментируйте сами
  
$result = apiRequest($api_server, $api_key, $api_token, $requestXml);
+
$ch = curl_init($api_server);
if(!$result['success']) {
+
 
echo $result['response'];
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // не выводи ответ на stdout
exit();
+
curl_setopt($ch, CURLOPT_HEADER, 1);  // получаем заголовки
}
+
// не проверять SSL сертификат
$apiResult = $result['response'];
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
parseAPIError($apiResult);
+
// не проверять Host SSL сертификата
$totalCount = $apiResult->projects['totalCount'];
+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$count = $apiResult->projects['count'];
+
 
echo "Всего проектов $totalCount<br>";
+
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
echo "Получено проектов $count<br>";
+
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();
  
foreach($apiResult->projects->project as $project) {
+
$response = curl_exec($ch);
echo "Проект:{$project->title} создатель:{$project->owner->name}";
+
$error = curl_error($ch);
echo '<br>';
+
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);
?>


Перейти