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:
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:
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:
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.