How get data from amoCRM.ru - all about deals in a CSV-table
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
amoREST.php

README.md

Класс для авторизации и получения данных из amoCRM.ru

Класс удобен при выгрузке данных из аккаунта на amoCRM.ru в таблицу. Все, что связано со сделкой, в одной строке таблицы.

Требует cURL.

Использование

Создать файл amoTable.php, в котором будут считываться сделки и связанные с ними данные. Когда данные готовы, формируются строки таблицы.
require(dirname(__FILE__) . '/amoREST.php');
class amoTable {
    const DELIMITER = "\t";
    const BATCH_SIZE = 100;
    // needed data for making a table
    public $account;
    public $leads;
    public $events;
    public $notes;
    ...
    public function __construct($config)
    {
        $maxrows = $config['limit_rows'];
        $offset = $config['limit_offset'];
        $amo = new amoREST(['account' => $config['account']]);
        $this->amo = $amo;
        if($amo->auth($config['email'], $config['api_key'])) {
            // account
            $response = $amo->get('accounts/current');
            $this->account = $response['account'];
            // leads
            $response = $amo->get('leads/list', [
                'limit_rows' => $maxrows,
                'limit_offset' => $offset,
            ]);
            $this->leads = $response['leads'];
            ...
    }
    /*
     * CSV table maker
     */
    public function make()
    {
        // Make a table
        foreach($this->leads as $lead) {
        ...
    }

Теперь остается положить в корень файл index.php примерно следующего содержания

require(dirname(__FILE__) . '/amoTable.php');
$amoTable = new amoTable([
    'account' => 'your-amoCRM-account',
    'email' => 'registered-email', 
    'api_key' => 'your-api-key',
    'limit_rows' => getParam('maxleads', 500),
    'limit_offset' => getParam('offset', 0),
]);
$f = fopen('amo.csv', 'w');
foreach($amoTable->make() as $line)
    fwrite($f, "$line\n");
fclose($f);
echo "Fine! Please, check amo.csv file.";
function getParam($var, $default) {
    return isset($_GET[$var]) ? $_GET[$var] : $default;
}