Escrito por

Sales Engineer at InterSystems
Artigo Danusa Calixto · Set. 1, 2023 5m read

Conectar a API REST do Salesforce

Olá, comunidade!

Com certeza, todos vocês já ouviram algo sobre a Salesforce – a empresa e seu software. Neste artigo, vamos nos concentrar na conectividade com o software CRM – Salesforce CRM. De uma forma muito genérica, o Salesforce CRM tem a capacidade de gerenciar as interações com os clientes de uma organização por meio de vários métodos, como telefonemas, consultas por e-mail, comunidades, mídias e redes sociais. Diz-se que o Salesforce lida com todos os relacionamentos com os clientes - com foco nos processos de vendas, suporte e marketing. Este serviço/software está disponível na nuvem.

Como seria bom se pudéssemos nos conectar ao Salesforce a partir do nosso ambiente InterSystems IRIS ou qualquer outro produto InterSystems.

A verdade é que acessar os objetos (dados) do Salesforce é bastante simples e intuitivo. Este artigo é dedicado a descrever as etapas necessárias para estabelecer conectividade e acessar os dados disponíveis no Salesforce.

APIs do Salesforce

O Salesforce tem uma infinidade de APIs. Para nós, e ao longo deste artigo, vamos nos dedicar à API REST. Essa API fornece uma interface de serviços da Web baseada em REST - avançada, prática e simples para interagir com o Salesforce. Suas vantagens incluem a facilidade de integração e desenvolvimento, sendo uma excelente opção tecnológica para uso com aplicativos móveis e projetos Web. Para determinados projetos, a API REST pode ser usada com outras APIs do Salesforce. Para obter mais informações sobre as APIs do Salesforce, você pode consultar aqui.

Configuração no Salesforce

Apesar de não ser o objetivo deste artigo, deixo aqui o link para o tutorial de configuração do endpoint REST no Salesforce - é o guia que está na base deste artigo. De forma bem resumida, as etapas necessárias são:

Etapa 1: Inscrever-se no Salesforce Developer Edition fornece uma solução fácil e gratuita para você usar o Salesforce para testes e desenvolvimento.

Etapa 2: Configurar autenticação para enviar solicitações com sucesso, a API REST requer um token de acesso obtido por meio de autenticação. É verdade que é possível criar e autenticar seu próprio ConnectedApp (aplicativo conectado). No entanto, usaremos o CLI do Salesforce por conveniência. O CLI do Salesforce é um ConnectedApp que pode ser autenticado e não requer nenhum trabalho para configurar. Para fazer isso, você precisará acessar o console do Salesforce:

 

Navegue até Aplicativos -> Gerenciador de aplicativos -> Criar ConnectedApp

 

Os parâmetros de configuração são:

  • Nome do aplicativo conectado
  • Nome da API           
  • E-mail de contato
  • Ativar configurações OAuth: sim
  • URL de retorno de chamada: https://localhost
  • Escopos OAuth selecionados: acesso total (completo)
  • Gravar/Continuar (isso pode levar até 10 minutos) 
  • Assim que a geração do endpoint terminar, teremos nosso ConsumerKey e ConsumerSecret - é necessário copiar e salvar.

    Etapa 3: Falta uma última configuração no Salesforce.

    Vá para Configuração -> Ferramentas da plataforma -> Aplicativos -> Aplicativos conectados -> Gerenciar aplicativos conectados

    Editar recursos do aplicativo: 

     

    No nosso ConnectedApp, temos que editar as políticas (editar políticas) e alterar os seguintes parâmetros conforme anexo:

  • Usuários permitidos: todos os usuários podem se autoautorizar
  • Relaxamento de IP: relaxe as restrições de IP para dispositivos ativados
  • A partir do InterSystems IRIS:

    Etapa 1: Usaremos o Python incorporado para nossa conexão com o Salesforce. A primeira coisa que devemos fazer é instalar o pacote necessário para estabelecer as conexões HTTP – Solicitações. Para instalá-lo em um container é necessário:

    $ pip3 install --target /usr/irissys/mgr/python requests

     

    Etapa 2: A seguir, temos uma classe de exemplo com código de amostra para acessar os recursos do Salesforce. Neste caso, é feito um pedido para obter os objetos disponíveis. Antes de experimentar este exemplo, certifique-se de preencher os pré-requisitos e obter um token de acesso na configuração do Salesforce.

    Class salesforce.PyConnTest
    {
    

    ClassMethod connTest() [ Language = python ] { import requests

    #create access token
    CONSUMER_KEY='XXXXXXXXXX'
    CONSUMER_SECRET='XXXXXXXXXX'
    DOMAIN_NAME='https://intersystems4-dev-ed.develop.my.salesforce.com'
    USERNAME='mymail@domain.com'
    PASSWORD='mypassword'
    json_data={
        'grant_type': 'password',
        'client_id': CONSUMER_KEY,
        'client_secret': CONSUMER_SECRET,
        'username': USERNAME,
        'password': PASSWORD
    }
    
    response_access_token=requests.post(DOMAIN_NAME + '/services/oauth2/token, data=json_data)
    print(response_access_token.status_code)
    print(response_access_token.reason)
    print(response_access_token.json())
    
    if response_access_token.status_code == 200:
        access_token_id=response_access_token.json()['access_token']
        print('access token created')
    
    #retrieve available objects
    headers={
        'Authorization: 'Bearer ' + access_token_id 
    }
    response_sObject=requests.get(DOMAIN_NAME + '/services/data/v53.0/sobjects', headers=headers)
    print(response_sObject.reason)
    print(response_sObject.json())
    

    }

    }

    Os parâmetros mais relevantes são:

  • grant_type: nestes exemplos usamos "senha".
  • client_id: é o identificador público do aplicativo. Ele é gerado quando o ConnectedApp é criado.  
  • client_secret: é um segredo conhecido apenas pelo servidor de Autorização e pelo App. Ele é gerado quando o ConnectedApp é criado. 
  • username: usuário registrado no Salesforce
  • password: senha do usuário do Salesforce.
  • Essa configuração básica estabelece a conexão entre o InterSystems IRIS (ou qualquer outro produto InterSystems) e o Salesforce. Este artigo é baseado no guia rápido do Salesforce e é dedicado à API REST do Salesforce.