@self-taught-dog
Начинающий веб-разработчик

Как интегрировать amocrm с сайтом на php?

Доброго дня, подскажите кто может уже занимался этим, пытаюсь соединиться с AMOCRM на сайте, используя PHP код:
$subdomain = " /*Наш поддомен в AMOCRM*/ ";
    $link = 'https://' . $subdomain . '.amocrm.ru/oauth2/access_token';
    $data = [
       'client_id' => ' /*id созданной нами интеграции в crm*/ ',
       'client_secret' => ' /*секретный ключ оттуда же*/ ',
       'grand_type' => 'autorization_code',
       'code' => ' /*Код авторизации оттуда же*/ ',
       'redirect_uri' => ' /* Сайт, на котором установлен этот код, с доменом 3-го уровня, без ssl сертификата */'
    ];

    $curl = curl_init();
    curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
    curl_setopt($curl,CURLOPT_URL, $link);
    curl_setopt($curl,CURLOPT_HTTPHEADER,['Content-Type:application/json']);
    curl_setopt($curl,CURLOPT_HEADER, false);
    curl_setopt($curl,CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($curl,CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
    $out = curl_exec($curl); //Инициируем запрос к API и сохраняем ответ в переменную
    $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);

    $code = (int)$code;
    $errors = [
      400 => 'Bad request',
      401 => 'Unauthorized',
      403 => 'Forbidden',
      404 => 'Not found',
      500 => 'Internal server error',
      502 => 'Bad gateway',
      503 => 'Service unavailable',
    ];

    try
    {
      /** Если код ответа не успешный - возвращаем сообщение об ошибке  */
      if ($code < 200 || $code > 204) {
        throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undefined error', $code);
      }
    }
    catch(\Exception $e)
    {
      die('Ошибка: ' . $e->getMessage() . PHP_EOL . 'Код ошибки: ' . $e->getCode());
    }

    $response = json_decode($out, true);

    $access_token = $response['access_token']; //Access токен
    $refresh_token = $response['refresh_token']; //Refresh токен
    $token_type = $response['token_type']; //Тип токена
    $expires_in = $response['expires_in']; //Через сколько действие токена истекает


Весь код из документации, подставлены только наши значения.. Сайт абсолютно новый и голый на Opencart 2.3, вся его модификация - это только этот код в файле footer.tpl. При вставке этого кода и обновлении страницы возвращается ошибка Bad request, код ошибки: 400.
Подскажите, что мешает ему нормально работать? буду очень благодарен
  • Вопрос задан
  • 1444 просмотра
Пригласить эксперта
Ответы на вопрос 1
какие то данные вы передаете не верно дабы отладить и понять в чем дело уберите эту часть кода
$code = (int)$code;
$errors = [
400 => 'Bad request',
401 => 'Unauthorized',
403 => 'Forbidden',
404 => 'Not found',
500 => 'Internal server error',
502 => 'Bad gateway',
503 => 'Service unavailable',
];

try
{
/** Если код ответа не успешный - возвращаем сообщение об ошибке */
if ($code < 200 || $code > 204) {
throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undefined error', $code);
}
}
catch(\Exception $e)
{
die('Ошибка: ' . $e->getMessage() . PHP_EOL . 'Код ошибки: ' . $e->getCode());
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы