Extensão do Salesforce

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Versão: 1.0.3

Acesse dados na sua conta do Salesforce. Inserir, atualizar, recuperar e consultar dados.

Este conteúdo oferece referência para configurar e usar essa extensão.

Pré-requisitos

Este conteúdo oferece referência para configurar e usar essa extensão. Antes de usar a extensão de um proxy de API com a política Extension callout, você precisa fazer o seguinte:

  1. Crie um par de chave privada/certificação RSA x509.

    Você usará a chave privada (.key) como credenciais ao configurar a extensão. Você vai usar o arquivo de certificado (.crt) ao criar um app conectado que vai conceder à extensão acesso ao Salesforce.

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. Configure um app conectado.

    Um app conectado do Salesforce vai dar acesso à extensão. Consulte as instruções abaixo para configurar o app.

  3. Acesse a chave do consumidor do app conectado. A extensão a usará ao autenticar com o app.

    1. Na configuração do Salesforce, no painel de navegação à esquerda, acesse Apps > App Manager.
    2. Na lista, localize o app conectado que você criou.
    3. No menu suspenso à direita na linha do aplicativo, clique em Visualizar.
    4. Em API (Enable OAuth Settings), localize a Consumer Key e copie o valor dela em um local seguro para usar ao configurar a extensão.

Configurar um app conectado para ser acessado pela extensão

Para que a extensão possa acessar o Salesforce, você precisa criar um app conectado do Salesforce para se conectar ao Salesforce.

No Salesforce, com um app conectado, aplicativos externos podem se conectar ao Salesforce por meio de APIs.

Para configurar um app conectado

  1. Faça login no Salesforce.
  2. Clique no ícone de engrenagem no canto superior direito e em Configuração.
  3. No painel de navegação à esquerda, expanda Apps > App Manager.
  4. Na página App Manager, clique em Novo app conectado.
  5. Em Informações básicas, preencha os campos obrigatórios. Os valores são para contabilidade e não são usados pela extensão.
  6. Em API (Enable OAuth Settings), marque a caixa de seleção Enable OAuth Settings.
  7. Embora não seja usada pela extensão, digite um URL de callback. É possível usar o http://localhost/ ou outro host de marcador de posição.
  8. Marque a caixa de seleção Usar assinaturas digitais.
  9. Em Usar assinaturas digitais, clique em Escolher arquivo para localizar e fazer upload do salesforce.crt gerado anteriormente.
  10. Na seção Escopos do OAuth selecionados, adicione o seguinte para que eles fiquem em Escopos do OAuth selecionados:
    • Acessar e gerenciar seus dados (API)
    • Faça solicitações em seu nome a qualquer momento (refresh_token, offline_access)
  11. Clique em Salvar. Se houver algum erro, talvez seja necessário gerar novamente e fazer upload do arquivo salesforce.crt.
  12. Na página do app resultante, clique em Gerenciar.
  13. Na página do App Manager do app que você acabou de criar, clique em Editar políticas.
  14. Em Políticas do OAuth, clique no menu suspenso Usuários permitidos e, depois, em Os usuários aprovados pelo administrador são pré-autorizados.
  15. Clique em Salvar.
  16. Na página do app, em Perfis, clique em Gerenciar perfis.
  17. Na página Atribuição de perfil de aplicativo, marque as caixas de seleção dos perfis de usuário que podem usar esse aplicativo.

    Selecione um perfil que corresponda ao usuário cujo nome de usuário será usado para configurar a extensão. Além disso, confirme se pelo menos os usuários administradores do sistema têm acesso ao aplicativo.

    É possível ver a configuração do perfil do usuário no Salesforce. Na área Configuração, expanda Usuários > Usuários, localize o usuário que a extensão representará e o perfil dele na coluna Perfil.

  18. Clique em Salvar.

Sobre o Salesforce

O Salesforce é uma plataforma de gestão de relacionamento com o cliente (CRM). A gestão de relacionamento com o cliente ajuda as empresas a entender as necessidades de seus clientes e resolver problemas ao gerenciar melhor as informações e interações com o cliente, tudo em uma única plataforma que está sempre acessível em qualquer computador ou dispositivo.

Ações

inserir

Insira registros como tipos sObject.

Sintaxe

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records":[ records-to-insert ],
  "allOrNone": true | false
}]]></Input>

Exemplo

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { "Name": "MyAccountName" }
  ],
  "allOrNone": true
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
objeto O tipo sObject de registros a serem inseridos. String Nenhum. Sim.
registros Matriz de registros sObject em JSON. Máximo: 1.000. Matriz Nenhum. Sim.
allOrNone true para falhar em toda a atualização se alguma parte dela falhar. Booleano false Não.

Resposta

Uma matriz results com resultados da operação de inserção.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Propriedade Descrição Tipo Padrão Obrigatório
results[*].id O ID do sObject gerado para o novo registro. String Nenhum. Sim.
resultados[*].sucesso true se a inserção do registro for bem-sucedida. Booleano Nenhum. Sim.
resultados[*].errors Matriz de erros, se houver, detectados durante a execução. Matriz Nenhum. Sim.

update

Atualizar os registros do Salesforce.

Sintaxe

<Action>update</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records": [ records-to-update ],
  "allOrNone": true | false
}]]></Input>

Exemplo

<Action>update</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { 
      "id":"0011U00000LQ76KQAT",
      "Name": "MyNewAccountName" 
    }
  ],
  "allOrNone": true
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
objeto O tipo sObject de registros a serem atualizados. String Nenhum. Sim.
registros Matriz de registros sObject em JSON. Cada registro a ser atualizado precisa incluir o valor do ID do registro. Máximo: 1.000. Matriz Nenhum. Sim.
allOrNone true para falhar em toda a atualização se alguma parte dela falhar. Booleano false Não.

Resposta

Uma matriz results contendo os resultados da atualização.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Parâmetro Descrição Tipo Padrão Obrigatório
results[*].id O ID do sObject gerado para o registro atualizado. String Nenhum. Sim.
resultados[*].sucesso true se a inserção do registro for bem-sucedida. Booleano Nenhum. Sim.
resultados[*].errors Matriz de erros, se houver, detectados durante a execução. Matriz Nenhum. Sim.

retrieve

Recupere registros como sObjects pelos respectivos IDs. Retorna todos os campos do tipo sObject.

Sintaxe

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Exemplo

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
objeto O tipo sObject de registros a serem recuperados. String Nenhum. Sim.
ids Matriz de registros de IDs de sObject a serem recuperados. Máximo: 1.000. Matriz Nenhum. Sim.
allOrNone true para falhar em toda a operação se qualquer parte da solicitação falhar. Booleano false Não.

Resposta

Uma matriz records de sObjects representados como JSON. Observe que todas as propriedades dos objetos são incluídas no JSON, mesmo que o valor da propriedade seja nulo.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

querySOQL

Consulte o Salesforce.com usando a Linguagem de consulta do objeto do Salesforce (SOQL, na sigla em inglês).

Sintaxe

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": soql-query-statement
}]]></Input>

Exemplo

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": "SELECT Id, Name FROM Account"
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
Soql Instrução SOQL para consultar. String Nenhum. Sim.

Resposta

Resultados da consulta.

{
  totalSize: 2,
  records: [
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76KQAT',
      Name: 'AccountName1'
    },
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76LQAT',
      Name: 'AccountName2'
    }
  ],
  done: true
}
Parâmetro Descrição Tipo Padrão Obrigatório
totalSize Número de registros retornados pela consulta. Número inteiro Nenhum. Sim.
registros Matriz de registros retornados como sObjects em JSON. Máximo: 1.000. Matriz Nenhum. Sim.
concluído true se a operação de consulta foi concluída. Booleano Nenhum. Sim.

list

Listar registros do Salesforce.com. Retorna todos os campos do tipo de sObject especificado.

Sintaxe

<Action>list</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "limit": max-number-of-records,
  "offset": record-index-at-which-to-begin-response-set
}]]></Input>

Exemplo

<Action>list</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "limit": 1000,
  "offset": 0
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
objeto O tipo sObject de registros a serem listados. String Nenhum. Sim.
limite Número máximo de registros a serem retornados. Número inteiro 1000 Não.
offset Deslocamento dos registros a serem listados. Número inteiro 0 Não.

Resposta

Uma matriz records contendo sObjects listados como JSON.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

del

Exclui registros com os IDs especificados.

Sintaxe

<Action>del</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Exemplo

<Action>del</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
objeto O tipo sObject de registros a serem excluídos. String Nenhum. Sim.
ids Matriz de IDs de sObject para registros a serem excluídos. Máximo: 1.000. Matriz Nenhum. Sim.

Resposta

Uma matriz results contendo os resultados da operação.

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Propriedade Descrição Tipo Padrão Obrigatório
results[*].id ID do sObject do registro especificado. String Nenhum. Sim.
resultados[*].sucesso true se a operação tiver sido bem-sucedida para o registro. Booleano Nenhum. Sim.
resultados[*].errors Matriz de erros, se houver, detectados durante a execução. Matriz Nenhum. Sim.

getAccessToken

Receba o token de acesso da API Salesforce.com. Pode ser usado para consultar APIs REST.

Sintaxe

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

Parâmetros de solicitação

Nenhum.

Resposta

O token de acesso no JSON.

{
  "accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
  "scope":"api",
  "instanceUrl": "https://na85.salesforce.com",
  "id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
  "tokenType": "Bearer"
}
Propriedade Descrição Tipo Padrão Obrigatório
accessToken O token de acesso. String Nenhum. Sim.
escopo Escopos em que o token fornece acesso String Nenhum. Sim.
instanceUrl URL da instância usada pela organização do Salesforce. String Nenhum. Sim.
id ID do app conectado. String Nenhum. Sim.
tokenType Tipo do token de acesso. String Portador Sim.

Referência de configuração

Use o código a seguir ao configurar e implantar a extensão para uso em proxies de API.

Propriedades de extensão comuns

As propriedades a seguir estão presentes para cada extensão.

Propriedade Descrição Padrão Obrigatório
name Nome que será dado a esta configuração da extensão. Nenhum Sim
packageName Nome do pacote de extensão fornecido pelo Apigee Edge. Nenhum Sim
version Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. Nenhum Sim
configuration Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. Nenhum Sim

Propriedades deste pacote de extensão

Especifique valores para as propriedades de configuração a seguir específicas desta extensão.

Propriedade Descrição Padrão Obrigatório
URL do servidor de autorização O URL a ser usado ao receber autorização do Salesforce. Normalmente é https://login.salesforce.com Nenhum. Sim.
Chave do consumidor do app conectado A chave do consumidor fornecida pelo Salesforce para o app conectado que você criou. Consulte as instruções em Pré-requisitos para recuperar a chave do cliente. Nenhum. Sim.
Credencial Quando inserido no console do Apigee Edge, esse é o conteúdo do arquivo salesforce.key que você gerou nas etapas acima. Quando enviado pela API Management, ele é um valor codificado em base64 gerado a partir do arquivo salesforce.key. Nenhum. Sim.
Nome do usuário do Salesforce O nome de usuário associado ao app conectado que você criou. A extensão do Salesforce usará isso para receber autorização do Salesforce. Nenhum. Sim.