Recentemente foi lançada a versão 6.2 do Vtiger CRM e com ela a equipe do Vtiger divulgou a Sincronização Vtiger CRM com Agenda Google, contudo, esta funcionalidade foi liberada com uma série de problemas, inviabilizando seu uso.

A equipe do Vtiger CRM, informou que as correções para o problema somente seriam integradas na próxima versão 6.3. Se você não pretende aguardar a próxima versão e deseja utilizar esta funcionalidade de imediato, será necessário aplicar um patch de correção.

Neste artigo vamos apresentar um passo a passo com orientações para aplicação destas correções e outros procedimentos necessários.

Este tutorial baseia-se na solução apresentada por Richard Hills, membro do Fórum dos Desenvolvedores do Vtiger CRM, ao qual cabe aqui nosso especial agradecimento pelo empenho e colaboração.

ATENÇÃO: Antes de executar os procedimentos abaixo, é fortemente aconselhável a realização de backup da pasta onde encontra-se instalado o Vtiger CRM e da base de dados. Apesar de já ter realizado testes e comprovado a eficácia das correções apresentadas, não nos responsabilizamos por qualquer problema ou dano decorrente da solução aqui disponibilizada.

 

Para aplicação das correções necessárias, siga as etapas e passos abaixo.

PRIMEIRA ETAPA – CONFIGURAÇÕES DO GOOGLE OAUTH2 E CRIAÇÃO DE CHAVES DAS APIs DO GOOGLE

PASSO 01


Se você estiver utilizando uma instalação nova [“zerada”] do Vtiger CRM 6.2, as mudanças relacionadas com o suporte ao Google OAuth2 já estarão presentes no código fonte. Desta forma, siga para o Passo 3. Contudo, se for uma versão 6.2 migrada, sugere-se seguir o Passo 2.

PASSO 02


Se sua versão 6.x é anterior à 6.2, aplique as mudanças necessárias para incluir o suporte ao Google OAuth2

  • Faça o download do arquivo libraries.zip e descompacte-o no diretório principal do Vtiger CRM;
  • Baixe os arquivos WSAPP.zip e Google.zip e a partir do Gerenciador de Módulos em, Configurações CRM > Estudio > Gerenciador Módulos, acesse o recurso “Instalar a partir do Zip” e atualize os módulos WSAPP e Google, utilizando os arquivos baixados.

PASSO 03


Acesse o Google Developers Console, através da URL: https://console.developers.google.com/project, utilizando sua conta de e-mail do Gmail, crie seu Projeto e obtenha a chave da API, a qual será utilizada para sincronizar o Vtiger CRM com o Agenda Google e Google Contatos.

Para facilitar a criação do projeto, siga as orientações apresentadas a seguir:

3.1. Acesse o Google Developers Console com sua conta do Gmail

Agenda Google.fig1

Acessando o Google Developer Console

3.2. Assim que acessar o Console, você será remetido para a página abaixo, onde deverá criar seu Projeto. Clique no botão “Criar projeto”

Agenda Google.fig01

Tela Inicial para Criação do Projeto

3.3. Na janela seguinte, dê um nome para seu Projeto.

Agenda Google.fig02

Dados do Projeto

3.4. Selecione, na próxima tela, o Projeto para utilizar as APIs [Otimizar seu aplicativo com uma API do Google]

Agenda Google.fig03

Selecionando um Projeto

3.5. A seguir, selecione as APIs “Calendar” e “Contacts” e clique sobre o botão “Ativar API” para ativar cada uma das APIs.

Agenda Google.fig04

Selecionando as APIs Calendar e Contacts

PASSO 04


Após ativação das APIs [Calendar e Contacts], acesse a aba Tela de consentimento e preencha os campos apresentado. A tela de consentimento será exibida aos usuários sempre que for solicitado acesso aos seus dados privados.

Agenda Google.fig05

Configurando a Tela de Consentimento

Quando o Usuário do CRM solicitar acesso, pela primeira vez, para realizar a sincronização com a Agenda Google, a tela de consentimento será exibida. Veja exemplo abaixo:

 

Agenda Google.fig06

Exemplo Tela Consentimento

Clique no botão “Aceitar” para ativar a conexão e iniciar o processo de sicronização dos dados.

PASSO 05


Uma vez preenchida as informações da Tela de consentimento, na sequência, defina as Credenciais para acesso às APIs. Para realizar este procedimento, vá para a aba Credenciais, localizada no lado esquerdo da tela e em seguida, clique sobre o botão “Criar um novo ID do cliente”.

Agenda Google.fig07

Criando o ID do Cliente

UAo acessar a tela de criação do Id do Cliente, preenche o campo Uri’s de redirecionamento autorizados com as duas URLs abaixo [uma em cada linha].

URIs de Redirecionamento Autorizados:

1. http://{$site_URL}/index.php?module=Google&view=List&operation=sync&sourcemodule=Calendar&service=GoogleCalendar

2. http://{$site_URL}/index.php?module=Google&view=List&operation=sync&sourcemodule=Contacts&service=GoogleContacts

Nas URIs acima, substitua {$site_URL} pelo valor da variável $site_URL, definida no arquivo config.inc.php, localizado no diretório principal do Vtiger CRM. Observe exemplo abaixo:

Agenda Google.fig08

Criando o ID do Cliente

PASSO 06


Agora, clique sobre o botão “Criar ID do Cliente” e o ID do Cliente e Chave Secreta do Cliente serão geradas para o Projeto.

Agenda Google.fig09

Criando Credencias

PASSO 07


Copie o ID do Cliente e a Chave Secreta do Cliente para uso na etapa seguinte.

SEGUNDA ETAPA – USO DAS CREDENCIAIS NO VTIGER CRM PARA HABILITAR A SINCRONIZAÇÃO COM O GOOGLE AGENDA E GOOGLE CONTATOS

Uma vez cumprida a primeira etapa, siga os passos seguintes:

1. Após ter gerado o ID do Cliente e a Chave Secreta do Cliente, estes dados deverão ser inseridos no arquivo Config.php do Conector do Google no Vtiger CRM.

2. Edite o arquivo modules/Google/connectors/Config.php no Vtiger CRM.

3. Neste arquivo você encontra a classe Google_Config_Connector com duas variáveis: $clientId e $clientSecret, com valores vazios.

4. Agora, copie o ID do Cliente gerado em https://console.developers.google.com/project e cole no arquivo como valor da variável $clientId.

5. Copie a Chave Secreta do Cliente a partir de https://console.developers.google.com/project e cole no arquivo como valor da variável $clientSecret.

Agenda Google.fig10

Credencias

6. Salve o arquivo após as modificações.

Após conclusão de todos os passos acima, acesse o Vtiger CRM e realize a sincronização com a Agenda Google, que deverá funcionar sem problemas. Realize o mesmo procedimento a partir do módulo de Contatos, para sincronizar com os Contatos do Google.

Agenda Google.fig11

Exemplo de Agenda Sincronizada

TERCEIRA ETAPA – CORREÇÕES NO FUSO HORÁRIO

Após as correções referentes ao problema com a sincronização, cabe agora realizar os ajustes abaixo para corrigir outro problema detectado com a data registrada na Agenda, que está definida, por padrão, para utilizar o fuso horário UTC e não o definido pelo Usuário no config.inc.php.

Para realizar os ajustes, siga os passos abaixo:

1. Com sua conta do Gmail, acesse seu Google Agenda e defina o fuso horário para GMT-3:00 São Paulo;

2. Ajuste o fuso horário no arquivo config.inc.php, linha 198, para: $default_timezone = ‘America/Sao_Paulo‘;

3. Ajuste o arquivo modules/Google/connectors/Oauth2.php, na linha 63, insira barra “/“ antes index.php?…

Agenda Google.fig12

4. Clique sobre o link a seguir, baixe o arquivo changeset_14431.zip e descompacte-o no diretório principal do CRM;

5. Realize a seguinte correção na linha 143 do arquivo /modules/Google/connectors/Calendar.php

Original:

$maxModifiedTime = date(‘Y-m-d H:i:s’, strtotime(Google_Contacts_Model::vtigerFormat(end($calendarRecords)->getUpdated())) + 1);

Ajustar para:

$maxModifiedTime = date(‘Y-m-d H:i:s’, strtotime(Google_Calendar_Model::vtigerFormat(end($calendarRecords)->getUpdated())) + 1);

6. Edite o arquivo /modules/Google/models/Calendar.php e realize os seguintes ajustes

6.1. Substitua no arquivo acima, o fragmento de código abaixo [Observe que este fragmento de código aparece em quatro lugares neste aquivo]:

Original:

$timeZone = new DateTimeZone(‘UTC’);

Ajustar para:

$timeZone = new DateTimeZone(date_default_timezone_get());

6.2. Neste mesmo arquivo, localize a função abaixo e insira o conteúdo representado pelos fragmentos que começam com //EDIT e finaliza com //END EDIT

public function vtigerFormat($date) {

// EDIT

$origDate = $date;

// END EDIT

list($date, $timestring) = explode(‘T’, $date);

list($time, $tz) = explode(‘.’, $timestring);

// EDIT – if this is UTC lets change it to correct system time

if(substr($tz,-1) == ‘Z’) {

$date = new DateTime($origDate);

$timeZone = new DateTimeZone(date_default_timezone_get());

$date->setTimezone($timeZone);

$date = $date->format(‘Y-m-d H:i:s’);

return $date;

}

// END EDIT

return $date . ” ” . $time;

}

Ao concluir a execução dos procedimentos acima, sua Agenda e Contatos do Vtiger CRM poderão ser integrados e sincronizados perfeitamente com a Agenda/Contatos do Google.

Ficamos agora, na expectativa de que a equipe do Vtiger CRM aplique estas correções na próxima versão 6.3 e nos poupe de todo este trabalho. 🙂

Fontes:

http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/8482

http://trac.vtiger.com/cgi-bin/trac.cgi/changeset/14431

http://vtiger-crm.2324883.n4.nabble.com/Vtigercrm-developers-Google-Contacts-Sync-in-vtiger-6-2-td15544.html

http://vtiger-crm.2324883.n4.nabble.com/Vtigercrm-developers-Google-Calendar-Sync-in-vtiger-6-2-td15515.html

conheça o Gluo crm