vikdiesel / amocrm-php-wrapper

AmoCRM PHP封装器

v1.0.0 2020-02-12 13:48 UTC

This package is auto-updated.

Last update: 2024-09-12 23:56:56 UTC


README

version license

PHP类,用于通过简化认证方式与AmoCRM交互。

它能做什么?

  • 以账户所有者的名义在AmoCRM中进行认证
  • 发送AmoCRM文档中的任何请求

简化AmoCRM认证

在2020年(或2019年?)AmoCRM取消了在个人账户中创建API密钥的功能。

从那时起,所有新的集成都需要通过OAuth2进行认证,这在只需要将网站上的联系人信息和申请发送到AmoCRM时似乎有些多余。

然而,即使在AmoCRM中也有简化认证,它也需要每24小时通过refresh_token获取新的access_token,而refresh_token也会在获取新的access_token时更新。

不像以前那样,当时可以直接获取API密钥并轻松发送所需信息。

如何使用?

安装

最简单的方法是通过Composer安装:composer require vikdiesel/amocrm-php-wrapper

创建集成

转到设置 -> 集成部分,然后点击创建集成

AmoCRM создание интеграции

保存后,您将能够获取所需的密钥。

AmoCRM авторизация API

简单示例:在AmoCRM中添加联系人及交易

示例:初始化并添加联系人及交易(线索)到AmoCRM

use AmoCrmPhpWrapper\Package\AmoClient;

// Домен в AmoCRM
$amo_domain = 'YOURNAME.amocrm.ru';

// ID интеграции
$client_id = '852d137c-e258-4f18-9db7-aaaaaaaaaaaa';

// Секретный ключ
$client_secret = '';

// Обязательно должен быть точно такой же, какой был указан при создании интеграции в интерфейсе AmoCRM. В классе больше никак не используется.
$redirect_uri = 'https://example.com';

// Код авторизации (действует 20 минут). В течение этого времени необходимо сделать первый запрос. Если прошло больше времени, то закройте и откройте карточку интеграции заново в интерфейсе amoCRM
$initial_code = '';

try {
  $amoClient = new AmoClient( $amo_domain, $client_id, $client_secret, $redirect_uri, $initial_code );

  $name  = 'Lubjek Strowinski';
  $phone = '+447824200245';
  $sale  = '7777';

  $r = $amoClient->request( '/api/v2/contacts', [
    'add' => [
      [
        'name'          => $name,
        'tags'          => 'test-case',
        'custom_fields' => [
          [
            'id'     => '406896',
            'values' => [
              [
                'value' => $phone,
                'enum'  => 'WORK'
              ]
            ]
          ]
        ]
      ]
    ]
  ] );

  $r = $amoClient->request( '/api/v2/leads', [
    'add' => [
      [
        'name'        => $name,
        'tags'        => 'test-case',
        'sale'        => $sale,
        'contacts_id' => $r->_embedded->items[0]->id
      ]
    ]
  ] );

} catch ( \AmoCrmPhpWrapper\Package\Exception\AmoClientException $exception ) {
  echo $exception->getMessage();
}