Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Нет получается добавить событие с типом звонок в контакт. #66

Open
trofimovm opened this issue Mar 9, 2018 · 6 comments

Comments

@trofimovm
Copy link

В место text добавляю массив params

private function addCallRecord ($amocrm)
{

      $note = $amocrm->note;
      $note->debug(true); // Режим отладки
      $note['element_id'] = $this->contactId;

      $note['element_type'] = \AmoCRM\Models\Note::TYPE_CONTACT;

      if($this->callType == 'outgoing')
      {
        $note['note_type'] = \AmoCRM\Models\Note::CALL_OUT;
      }

      $note['params'] =  [
        'UNIQ' => md5(Rand(11111111,99999999)),
        'LINK' => $this->callRecFile,
        'PHONE' => $this->phone,
        'DURATION' => $this->callLength,
        'SRC' => 'asterisk'
      ];
  
      $id = $note->apiAdd();
}

Событие в контакт не добавляется
Объект $node выглядит вот так перед $node->apiAdd();

Note {#185 ▼
  #fields: array:9 [▼
    0 => "element_id"
    1 => "element_type"
    2 => "note_type"
    3 => "date_create"
    4 => "last_modified"
    5 => "request_id"
    6 => "text"
    7 => "responsible_user_id"
    8 => "created_user_id"
  ]
  #types: array:14 [▼
    1 => "Сделка создана"
    2 => "Контакт создан"
    3 => "Статус сделки изменен"
    4 => "Обычное примечание"
    5 => "Файл"
    6 => "Звонок приходящий от iPhone-приложений"
    7 => "Письмо"
    8 => "Письмо с файлом"
    10 => "Входящий звонок"
    11 => "Исходящий звонок"
    12 => "Компания создана"
    13 => "Результат по задаче"
    102 => "Входящее смс"
    103 => "Исходящее смс"
  ]
  #values: array:3 [▼
    "element_id" => 45429965
    "element_type" => 1
    "note_type" => 11
  ]
  #v1: false
  -debug: true
  -parameters: ParamsBag {#180 ▼
    -authParams: array:3 [▶]
    -getParams: []
    -postParams: []
    -proxy: null
  }
  -lastHttpCode: null
  -lastHttpResponse: null
}

При этом дебаг без ошибок

[DEBUG] url: https://zuckerstudio.amocrm.ru/private/api/v2/json/notes/set?USER_LOGIN=login&USER_HASH=hash

[DEBUG] headers: Array ( [0] => Content-Type: application/json )

[DEBUG] post params: {"request":{"notes":{"add":[{"element_id":45429965,"element_type":1,"note_type":11}]}}} [DEBUG] curl_exec: {"response":{"notes":{"add":[]},"server_time":1520577837}} [DEBUG] curl_getinfo: Array ( [url] => https://zuckerstudio.amocrm.ru/private/api/v2/json/notes/set?USER_LOGIN=login&USER_HASH=hash [content_type] => application/json; charset="utf-8" [http_code] => 200 [header_size] => 1058 [request_size] => 313 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.316862 [namelookup_time] => 2.5E-5 [connect_time] => 0.046507 [pretransfer_time] => 0.159193 [size_upload] => 87 [size_download] => 58 [speed_download] => 183 [speed_upload] => 274 [download_content_length] => -1 [upload_content_length] => 87 [starttransfer_time] => 0.316842 [redirect_time] => 0 [redirect_url] => [primary_ip] => 88.212.240.252 [certinfo] => Array ( ) [primary_port] => 443 [local_ip] => 10.0.1.4 [local_port] => 60246 )
[DEBUG] curl_error: [DEBUG] curl_errno: 0

И вроде все хорошо, а в контакте пусто

@dotzero
Copy link
Owner

dotzero commented Mar 9, 2018

Так у примечания нету поля params
https://web.archive.org/web/20150325223249/https://developers.amocrm.ru/rest_api/notes_set.php

@trofimovm
Copy link
Author

Правильно ли я понимаю, что текущая версия вашей библиотеки не поджерживает события с типом CALL_IN и CALL_OUT?

@trofimovm
Copy link
Author

https://www.amocrm.ru/developers/content/api/notes#note_types
Для событий CALL_IN и CALL_OUT обязательным является наличие массива params.

Нашел вашей библиотеке

/**
   * @link https://developers.amocrm.ru/rest_api/notes_type.php
   * @type array Типы примечаний
   */
  protected $types = [
      self::DEAL_CREATED => 'Сделка создана',
      self::CONTACT_CREATED => 'Контакт создан',
      self::DEAL_STATUS_CHANGED => 'Статус сделки изменен',
      self::COMMON => 'Обычное примечание',
      self::ATTACHMENT => 'Файл',
      self::CALL => 'Звонок приходящий от iPhone-приложений',
      self::EMAIL_MESSAGE => 'Письмо',
      self::EMAIL_ATTACHMENT => 'Письмо с файлом',
      self::CALL_IN => 'Входящий звонок',
      self::CALL_OUT => 'Исходящий звонок',
      self::COMPANY_CREATED => 'Компания создана',
      self::TASK_RESULT => 'Результат по задаче',
      self::SMS_IN => 'Входящее смс',
      self::SMS_OUT => 'Исходящее смс',
  ];

  const DEAL_CREATED = 1;
  const CONTACT_CREATED = 2;
  const DEAL_STATUS_CHANGED = 3;
  const COMMON = 4;
  const ATTACHMENT = 5;
  const CALL = 6;
  const EMAIL_MESSAGE = 7;
  const EMAIL_ATTACHMENT = 8;
  const CALL_IN = 10;
  const CALL_OUT = 11;
  const COMPANY_CREATED = 12;
  const TASK_RESULT = 13;
  const SMS_IN = 102;
  const SMS_OUT = 103;

Если есть поддержка всех типов, тогда почему вы написали, что у примечаний нет поля params.

Я запутался, помогите разобраться пожалуйста

@trofimovm
Copy link
Author

Спасибо, я разобрался. Массив параметров звонка нужно в json конвернуть и записать в элемент text. Запутала меня документация AmoCRM

@edvardpotter
Copy link

edvardpotter commented May 15, 2018

@trofimovm Спасибо за помощь, документация у amo просто отвратная, как у вас получилось догадаться что туда нужно передавать json? Ведь у них даже в доках написано в примере на php без json:

$notes['add'] = array(
   array(
     'element_id' => 2342344,
     'element_type' => 2,
     'note_type' => 10,
     'params' => array(
        'UNIQ' =>'676sdfs7fsdf',
        'LINK' => 'www.testweb.ru/test_call.mp3',
        'PHONE' => '84950000001',
        'DURATION' => 58,
        'SRC' => 'asterisk'
        'call_status' => '3', //статус
        'call_result' => 'Поговорили' //результат (необязательно)
      )
   )
);

@abelidze
Copy link

@edvardpotter Думаю, достаточно элементарно - params был добавлен в amoCRMv3.
А то, в чем вы пробуете разобраться - amoCRMv2, там прямым текстом написано, что text это JSON. Русская версия этой документации уже давно выпилена с их сайта, старую пока еще можно найти в английской версии.
В любой системе существуют недокументированные возможности и тот факт, что вы их используете еще не означает, что документация отвратная. Это означает лишь то, что вы уверены в своих силах, используете API на свой страх и риск и готовы к борьбе со всевозможными проблемами.

P.S> Хотя новая документация меня местами тоже ставит в тупик - например, note_type=25 (тип указан в документации), где нужно в params передавать еще и service, иначе не заведется. Узнал я это, конечно же, не из документации (там этого просто нет), а написав в саппорт.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants