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

Материал из ПланФикс
Перейти к: навигация, поиск
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
{{#seo:
 +
|title=ПланФикс API: Пример получения списка проектов на php
 +
|titlemode=append
 +
|keywords=планфикс, проекты, апи, api
 +
|description=Пример получения списка проектов на php
 +
}}
 +
 
Простой пример получения списка проектов и вывод его.  
 
Простой пример получения списка проектов и вывод его.  
Из примера становится ясно назначение параметра '''sid'''.
 
  
  
 
<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-ВАШЕГО_ПРИЛОЖЕНИЯ';// смотри http://dev.planfix.ru/
+
$api_key = 'APIKey-ВАШЕГО_ПРИЛОЖЕНИЯ';//  
$api_secret = 'APISecret-ВАШЕГО_ПРИЛОЖЕНИЯ';
+
$api_token = 'ТОКЕН_АВТОРИЗАЦИИ';
$planfixAccount = 'ВАШ_АККАУНТ';
 
$planfixUser = 'ЛОГИН_ПОЛЬЗОВАТЕЛЯ_В_ПЛАНФИКС';
 
$planfixUserPassword = 'ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ';
 
  
include 'lib.php';
+
/** получаем список доступных нам проектов и выводим его
 +
* используем функции на: http://goo.gl/E41Vv
 +
*/
 +
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account></request>');
  
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="auth.login"><account></account><login></login><password></password></request>');
+
$requestXml->account = 'your_account';
 +
$requestXml->pageCurrent = 1;
 +
// остальные параметры являются необязательными, поэкспериментируйте сами
 +
 
 +
$ch = curl_init($api_server);
  
$requestXml->account = $planfixAccount;
+
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$requestXml->login =  $planfixUser;
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // не выводи ответ на stdout
$requestXml->password = $planfixUserPassword;
+
curl_setopt($ch, CURLOPT_HEADER, 1);   // получаем заголовки
$requestXml->signature = make_sign($requestXml, $api_secret);
+
// не проверять SSL сертификат
 +
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 +
// не проверять Host SSL сертификата
 +
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  
$result = apiRequest($api_server, $api_key, $requestXml);
+
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
if(!$result['success']) {
+
curl_setopt($ch, CURLOPT_USERPWD, $api_key . ':' . $api_token);
echo $result['response'];
 
exit();
 
}
 
$apiResult = $result['response'];
 
parseAPIError($apiResult);
 
  
/**
+
curl_setopt($ch, CURLOPT_POST, true);
* Важно понимать:
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml->asXML());
* 1 - что полученный идентификатор сессии необходим для вызова всех остальных функций;
+
echo $requestXml->asXML();
* 2 - время жизни сессии ограничено 20-ю минутами;
+
 
* 3 - при каждом следующем вызове это время продлевается;
+
$response = curl_exec($ch);
* 4 - сессию не надо получать перед каждым вызовом функции (количество запросов ограничено);
+
$error = curl_error($ch);
*/
+
var_dump($error);
$api_sid = $apiResult->sid;
+
 
echo "sid is: $api_sid<br>";
+
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
/*
+
$responseBody = substr($response, $header_size);
* получаем список доступных нам проектов и выводим его
+
 
* используем функции на: http://goo.gl/E41Vv
+
curl_close($ch);
*/
 
$requestXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><request method="project.getList"><account></account><sid></sid></request>');
 
$requestXml->account = $planfixAccount;
 
$requestXml->sid = $api_sid;
 
$requestXml->pageCurrent = 1;
 
// остальные параметры являются необязательными, поэкспериментируйте сами
 
$requestXml->signature = make_sign($requestXml, $api_secret);
 
$result = apiRequest($api_server, $api_key, $requestXml);
 
if(!$result['success']) {
 
echo $result['response'];
 
exit();
 
}
 
$apiResult = $result['response'];
 
parseAPIError($apiResult);
 
$totalCount = $apiResult->projects['totalCount'];
 
$count = $apiResult->projects['count'];
 
echo "Всего проектов $totalCount<br>";
 
echo "Получено проектов $count<br>";
 
  
foreach($apiResult->projects->project as $project) {
+
var_dump($responseBody);
echo "Проект:{$project->title} создатель:{$project->owner->name}";
 
echo '<br>';
 
}
 
 
?>
 
?>
 +
 
</source>
 
</source>
  

Текущая версия на 13:00, 5 декабря 2019

Простой пример получения списка проектов и вывод его.


<?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_FOLLOWLOCATION, true);
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);
?>


Перейти