Criar um aplicativo de cliente externo
Criar um projeto do SFDX
Agora que seu ambiente está configurado, é hora de criar seu aplicativo de cliente externo. Para isso, você precisará de um projeto do SFDX.
- Crie uma pasta chamada
ECA Metadata
(Metadados ECA) no computador onde você queira criar o aplicativo.
- Abra a pasta no VS Code.
- Abra o terminal no VS Code na pasta que você criou.
- Execute este comando no terminal para criar um projeto do Salesforce DX chamado
ecaViaMetadata
com o modelo padrão.
Autorizar sua organização Dev Hub
Conecte o projeto do SFDX no seu computador ao Dev Hub do Trailhead Playground usando o aplicativo conectado. Você precisará do seu domínio nesta etapa. Para encontrar seu domínio em Setup (Configuração), insira My Domain
(Meu domínio) na caixa Quick Find (Busca rápida) e clique em My Domain (Meu domínio).
- Abra a pasta ECA Metadata do projeto do SFDX no VS Code.
- No terminal do VS Code, execute este comando depois de substituir <my domain> pelo domínio da sua organização.
- Faça login com as credenciais do seu Trailhead Playground na página da Web aberta.
- Permita o acesso à organização.
Configurar o projeto do SFDX para um aplicativo de cliente externo
- Abra o arquivo
sfdx-project.json
no VS Code.
- Atualize o parâmetro sfdcLoginUrl com seu domínio.
Para encontrar seu domínio em Setup (Configuração), insira My Domain
(Meu domínio) na caixa Quick Find (Busca rápida) e clique em My Domain (Meu domínio).
- Expanda o diretório chamado config e abra o arquivo de definição da organização temporária chamado project-scratch-def.json. Adicione
ExternalClientApps
eExtlClntAppSecretExposeCtl
à configuração dos recursos.
-
Crie um arquivo de manifesto package.xml no diretório de projeto.
- Adicione esse conteúdo ao seu arquivo package.xml.
- No diretório force-app/main/default, crie uma pasta chamada
externalClientApps
.
- Adicione um arquivo à pasta externalClientApps chamado
ecaViaMetadata.eca-meta.xml
. Ele será o arquivo de cabeçalho do seu aplicativo de cliente externo.
- Adicione esse conteúdo ao seu arquivo de cabeçalho.
Aqui, seu aplicativo de cliente externo está tecnicamente completo. Você poderia implantar essa configuração e ela apareceria no Gerenciador de aplicativo de cliente externo no seu playground como aplicativo de cliente externo básico. Mas, para tornar um aplicativo útil, você precisa de um plugin. Vamos configurar um plugin do OAuth semelhante ao que fizemos no primeiro módulo. Um plugin do Oauth configurado para o fluxo do servidor da Web OAuth 2.0 exige algumas edições e alguns novos arquivos.
Ativar e configurar o plugin do OAuth
Diferentemente dos aplicativos conectados, que combinam todas as configurações em um único arquivo, os aplicativos de cliente externos incluem dois arquivos de configuração e um arquivo de políticas. O arquivo de configurações globais do OAuth inclui campos confidenciais, por exemplo, a chave e o segredo do cliente do OAuth que deveriam estar protegidos. O arquivo de configurações do OAuth inclui todas essas configurações menos confidenciais para um aplicativo de cliente externo. Não existe a necessidade de criar um arquivo de políticas ao configurar um aplicativo de cliente externo para o fluxo do servidor Web porque as políticas são configuradas com base nos arquivos de configuração. O arquivo de políticas do Oauth é gerado quando você implanta o aplicativo de cliente externo.
Criar um arquivo de configurações globais do OAuth
- No diretório force-app/main/default, crie uma pasta chamada
extlClntAppGlobalOauthSets
.
- Adicione um arquivo à pasta extlClntAppGlobalOauthSets chamado
ecaViaMetadataGlblOAuth.ecaGlblOauth-meta.xml
.
- Abra o arquivo ecaViaMetadataGlblOAuth.ecaGlblOauth-meta.xml no VS Code e adicione esse conteúdo a ele.
- Salve o arquivo de configurações globais do OAuth.
Criar um arquivo de configurações do OAuth
- No diretório force-app/main/default, crie uma pasta chamada
extlClntAppOauthSettings
.
- Adicione um arquivo à pasta extlClntAppOauthSettings chamado
ecaViaMetadataSettings.ecaOauth-meta.xml
.
- Abra o arquivo ecaViaMetadataSettings.ecaOauth-meta.xml no VS Code e adicione esse conteúdo a ele.
- Salve o arquivo de configurações do OAuth.
Arquivos de configuração de referência no arquivo de cabeçalho
Agora que você criou os dois arquivos de configuração, precisa incorporá-los ao aplicativo de cliente externo. O arquivo de cabeçalho é uma lista de todos os arquivos que compõem o aplicativo de cliente externo.
- Abra o arquivo de manifesto package.xml.
- Adicione uma entrada para cada um dos três arquivos OAuth.
- Salve o arquivo de manifesto package.xml.
Implantar seu aplicativo de cliente externo
Agora que seu aplicativo de cliente externo está devidamente configurado, implante-o. O arquivo de políticas é criado na implantação, ou seja, depois de implantar, recupere o aplicativo de cliente externo para levar o arquivo gerado para seu projeto do SFDX.
- Execute esse comando para implantar o aplicativo de cliente externo. Substitua <username> pelo nome de usuário que você usou para fazer login quando autorizou o Dev Hub.
- Recupere o aplicativo de cliente externo do seu Trailhead Playground. Substitua <username> pelo nome de usuário que você usou para fazer login quando autorizou o Dev Hub.
Verificar seu aplicativo
Depois de implantar e recuperar o aplicativo de cliente externo com sucesso, você deverá ver um arquivo de políticas no projeto do SFDX que antes não existia.
Você também pode abrir o Gerenciador de aplicativos de cliente externos e ver um novo aplicativo de cliente externo chamado ecaViaMetadata. Se quiser explorar, você pode coletar a chave e o segredo de cliente do seu My Domain e do OAuth e conectá-los ao OpenID Connect Playground para percorrer o fluxo do servidor Web do OAuth.
Recursos
- Ajuda do Salesforce: Criar um aplicativo de cliente externo com a API de metadados
- Ajuda do Salesforce: Como entender a API de metadados
- Ajuda do Salesforce: Como implantar e recuperar metadados
- Ajuda do Salesforce: Como a experiência de desenvolvedor do Salesforce muda sua forma de trabalhar
- Trailhead: Noções básicas do API