top_br
Efetuar login

Suporte Bitrix24

Webhooks

Classificação:

Como você deve saber, o Bitrix24 inclui uma extensa API REST que pode ser usada para estender os recursos do Bitrix24 e integrar sistemas de terceiros. Os métodos REST podem criar e editar tarefas e entidades do CRM, postar mensagens no Fluxo de Atividades e muito mais.

No entanto, trabalhar com o REST é uma tarefa que exige qualificações de nível elevado. Conecte sua conta Bitrix24 com serviços externos através de WebHooks!

Um webhook (gancho web) é uma forma simplificada de eventos e comandos REST que permite ampliar as funcionalidades de um site sem desenvolver um aplicativo.
Mesmo que criar webhooks é mais simples do que desenvolver aplicativos, incumba os especialistas experientes dessa tarefa.

Você pode gerenciar seus Webhooks na página Aplicativos > Webhooks.

Como criar um webhook de entrada?

Clique em Adicionar webhook > Webhook de entrada no canto superior direito da página.

Insira o nome e a descrição do webhook. Especifique a que módulos de Bitrix24 terá acesso esse webhook.

Clique em Salvar. Aparecerá o código de autorização para o webhook:

Atenção! Esse código é confidencial. Mantenha-o em segredo.

Junto com o código, você verá o exemplo de URL que deve ser usado ao enviar dados de um sistema de terceiros para o Bitrix24:

https://********.bitrix24.com.br/rest/1/c7tf4v7n6s04ionc/profile/

onde:

  • ********* - é o nome da sua conta Bitrix24
  • /rest/ - indica que o endereço se refere a webhooks
  • /1/ - é o identificador do usuário que criou esse webhook. Este webhook funcionará sob os direitos deste usuário.
  • /c7tf4v7n6s04ionc/ - um código segredo
  • /profile/ - método REST que você deseja executar chamando o webhook. O desenvolvedor tem que escolher o método do API REST, dependendo do objetivo.

Em seguida, use o URL para chamar o Bitrix24 a partir do sistema externo.



Exemplo do webhook de entrada

Por exemplo, você deseja criar um lead a partir do formulário em um sistema externo. É preciso gerar URL na variável $queryUrl, configurar parâmetros para a criação do lead na variável $queryData. Após as etapas preparatórias, execute a solicitação ao Bitrix24 via curl_exec.

Segue um exemplo do código.

<? /** * Write data to log file. * * @param mixed $data * @param string $title * * @return bool */ function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND); return true; } $defaults = array('first_name' => '', 'last_name' => '', 'phone' => '', 'email' => ''); if (array_key_exists('saved', $_REQUEST)) { $defaults = $_REQUEST; writeToLog($_REQUEST, 'webform'); $queryUrl = 'https://restapi.bitrix24.ru/rest/1/31uhq2q855fk1foj/crm.lead.add.json'; $queryData = http_build_query(array( 'fields' => array( "TITLE" => $_REQUEST['first_name'].' '.$_REQUEST['last_name'], "NAME" => $_REQUEST['first_name'], "LAST_NAME" => $_REQUEST['last_name'], "STATUS_ID" => "NEW", "OPENED" => "Y", "ASSIGNED_BY_ID" => 1, "PHONE" => array(array("VALUE" => $_REQUEST['phone'], "VALUE_TYPE" => "WORK" )), "EMAIL" => array(array("VALUE" => $_REQUEST['email'], "VALUE_TYPE" => "WORK" )), ), 'params' => array("REGISTER_SONET_EVENT" => "Y") )); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryUrl, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result, 1); writeToLog($result, 'webform result'); if (array_key_exists('error', $result)) echo "Erro ao salvar o lead: ".$result['error_description']."
"; } ?> <form method="post" action=""> Nome: <input type="text" name="first_name" size="15" value="<?=$defaults['first_name']?>"><br/> Sobrenome: <input type="text" name="last_name" size="15" value="<?=$defaults['last_name']?>"><br/> Celular: <input type="phone" name="phone" value="<?=$defaults['phone']?>"<
E-mail: <input type="email" name="email" value="<?=$defaults['email']?>"><br/> <input type="hidden" name="saved" value="yes"> <input type="submit" value="Enviar"> </form>
Anteção! O código serve de exemplo, não recomendamos usar o método "copiar e colar".

Como criar um webhook de saída?

Clique em Adicionar webhook > Webhook de saída no canto superior direito da página.

Na janela que aparecerá, especifique o nome e a descrição do webhook, preencha o Endereço do manipulador - a página do serviço externo que será chamada pelo webhook.

Selecione o tipo de evento que acionará o webhook.

Salve o webhook, e você receberá o Código de autorização. Esse código permite verificar se o manipulador foi chamado pelo seu bitrix24.

Em seguida, coloque o código na página do manipulador.



Exemplo do código do manipulador para o evento ONCRMDEALUPDATE

<? print_r($_REQUEST); writeToLog($_REQUEST, 'incoming'); /** * Write data to log file. * * @param mixed $data * @param string $title * * @return bool */ function writeToLog($data, $title = '') { $log = "\n------------------------\n"; $log .= date("Y.m.d G:i:s") . "\n"; $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n"; $log .= print_r($data, 1); $log .= "\n------------------------\n"; file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND); return true; } 

Para verificar o código, abra qualquer negócio no regime de edição e salve as alterações. O histórico será salvo no log:

2019.01.17 12:58:29 incoming Array ( [event] => ONCRMDEALUPDATE [data] => Array ( [FIELDS] => Array ( [ID] => 662 ) ) [ts] => ххх [auth] => Array ( [domain] => ххх.bitrix24.ru [client_endpoint] => https://ххх.bitrix24.ru/rest/
	[server_endpoint] => https://oauth.bitrix.info/rest/
	[member_id] => ххх [application_token] => ххх ) )
Isso ajudou Obrigado :) Isso não ajudou Desculpa :(
Você poderia nos dizer por que:
Não é o que estou procurando
É muito complicado

Não encontrou resposta a sua pergunta?

Envie sua pergunta para a equipe Bitrix24Care
Para ter o acesso ao suporte técnico de especialistas é preciso possuir a assinatura de um plano comercial, o serviço não é acessível para os usuários de contas gratuitas. As contas gratuitas são limitadas em recursos de auto-suporte, tais como manuais, artigos do helpdesk, vídeo titulares e webinares gratuitos. A assistência técnica, treinamentos, configurações,customatizações e outros serviços adicionais podem ser comprados diretamente de parceiros locais do Bitrix24