- PVSM.RU - https://www.pvsm.ru -
Один из наших сервисов занимается построением ежедневных отчетов анализируя данные из Highrise [1].
Данные из Highrise можно получать несколькими способами:
CSV нами даже не рассматривался и мы попытались найти удобный метод для ежедневного обновления нашей базы через API.
Придумали следующее:
Пример XML ответа (https://xxx.highrisehq.com/deals.xml):
Стрелками обозначены элементы, которые мы считаем вложенными и соответственно выносим данные в связанные таблицы.
Пример того что у нас получается на выходе:
Теперь с этими данными можно делать что угодно, рисовать графики, считать суммы, выдергивать другую интересную информацию.
Самое главное, что получившийся код работает со всеми сервисами 37signals и может делать синхронизацию любого их сервиса.
<?php
require 'SyncService.class.php';
$sync = new SyncService( array(
'db' => array(
'host' => 'localhost',
'user' => 'root',
'password' => '123',
'schema' => 'basecamp'
),
'service' => array(
'name' => 'basecamp',
'url' => 'https://xxx.basecamphq.com',
'token' => 'abcdef1234567890abcdef1234567890',
'streams' => array(
'/todo_lists.xml' => 500,
'/people.xml' => 500,
'/projects.xml' => 500,
'/account.xml' => 0,
)
),
) );
$sync->doSyncing();
Весь код библиотеки вместе с примером на гитхабе. [2]
Автор: xytop
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/34241
Ссылки в тексте:
[1] Highrise: http://highrisehq.com
[2] Весь код библиотеки вместе с примером на гитхабе.: https://github.com/dyatlov/37signals-mysql
[3] Источник: http://habrahabr.ru/post/179665/
Нажмите здесь для печати.