Artigo
· Set. 1, 2023 5min de leitura

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.  

    Discussão (0)1
    Entre ou crie uma conta para continuar