Conhecimento necessário
- Noções básicas sobre o AEM Mobile
- Conhecimento sobre criação e publicação de conteúdo por meio do portal sob demanda padrão
Produtos necessários
- AEM Mobile
As On-Demand Services APIs do Adobe Experience Manager permitem que um desenvolvedor terceirizado se integre com os Serviços sob demanda. Esses serviços lhe permitem:
- Gerenciar artigos
- Gerenciar coleções
- Gerenciar produtos
- Gerenciar notificações por push
As On-Demand Services APIs (anteriormente denominadas “Content Producer Service APIs”) são as mesmas APIs usadas pelo portal sob demanda (https://aemmobile.adobe.com)).

Você pode usar o AEM para produzir conteúdo para aplicativos do AEM Mobile. Fale com um representante da Adobe para obter mais informações.
Há integrações disponíveis (de parceiros da Adobe) com os seguintes sistemas de fluxo de trabalho editorial, sistemas de gerenciamento de conteúdo (CMS) e soluções de criação baseadas na Web:
Sistemas CMS
Klaasjan Tukker e Mike Yang realizaram esta apresentação sobre possibilidades de fluxo de trabalho avançado na conferência MAX 2015:
Observação:
Ao baixar o software relacionado abaixo, eu reconheço que li e concordo com os termos da licença para APIs do AEM Mobile Services, os Termos de uso em Adobe.com e a política de privacidade online da Adobe.
Download
Esse arquivo .zip contém os seguintes itens:
- Documentação da API
- Definições do JSON schema
- Exemplos de código
- Exemplos de script do InDesign
- Formulário de solicitação da chave de API
Para exibir a documentação da API (criada com o Swagger), descompacte os arquivos em uma pasta no seu servidor Web (por exemplo, MAMP).
Se o URL hospedado para a documentação do swagger for http://localhost:8888/aemmobile-swagger, você poderá ignorar a etapa a seguir.
Abra o arquivo “service.json” e modifique a linha 55 para definir o basePath para a hospedagem+caminho onde a documentação pode ser acessada. Por exemplo:
#53 "contact": "wwds@adobe.com"
#54 },
#55 "basePath": "http://localhost:8888/seu-caminho-personalizado"
#56 }
Abra o navegador da Web e navegue até o local onde você implantou a documentação. A On-Demand Services API deve estar visível.
Configure um projeto, crie funções e conceda acesso aos usuários. Para obter mais informações, consulte os seguintes artigos de ajuda:
Uma boa prática é evitar usar a mesma Adobe ID de alguém que recebeu direitos de administração de “conta mestre” ou de “projeto total”. Crie uma Adobe ID que tenha acesso somente às operações que você deseja permitir por meio da On-Demand Services API.
Observação:
Para executar os exemplos abaixo, comece com um novo projeto.
Para acessar a On-Demand Services API e fazer integração com sistemas de terceiros, você precisa de uma chave de API.
Download
Para obter mais informações sobre quando uma chave de API é necessária ou quando usar uma existente, consulte Uso da chave de API do AEM Mobile.
Depois de receber sua chave da API, você poderá gerar a device_id e o device_token. Vá para https://aex.aemmobile.adobe.com e faça o seguinte:
- Forneça a chave da API
- Faça logon com a Adobe ID solicitada para a lista de permissões (no formulário de solicitação)
Se todas as condições forem atendidas, uma device_id e um device_token serão gerados.
Descompacte os exemplos e altere os valores padrão para refletir sua conta e as chaves da API. Verifique se você criou um projeto novo no portal sob demanda e atribuiu uma função para a Adobe ID que será usada para a comunicação nos exemplos de API.
Alterar:
- config/credentials.php
Altere/adicione os valores para “client_id” (sua chave da API), “client_secret”, “device_token” e “device_id” (do serviço AEX).
Defina o valor de “client_version”; isso serve para identificar o “system” na comunicação com a On-Demand Services API. Por exemplo, “aemmobile-learn-api-doc -1.0”
Executar:
- demo/01_get_access_token.php
Se estabelecida corretamente, a resposta deverá fornecer um “access_token”. Use esse access_token nas chamadas de serviço de acompanhamento.
Alterar:
- config/credentials.php
Adicione o valor para o “access_token”.
Executar:
- demo/02_get_user_permissions.php
Se estabelecida corretamente, a resposta deverá fornecer uma lista de projetos à qual a Adobe ID (para a qual o device_id/device_token foi gerado) tem acesso.
Selecione o projeto com que deseja interagir. (Deve ser um projeto novo e recém-criado.) A ID do projeto é um GUID como “8dbeb5da-ca73-d0da-b0b0-885fb83e7ae8”.
Alterar:
- Config/parameters.php
Atualize “publication_id” com a ID do projeto recebida acima.
Executar:
- demo/03_update_home_collection.php
Se estabelecida corretamente, isso colocará a coleção de nível superior em um estado publicável, fazendo upload da miniatura e da imagem de fundo, configurando a ID de produto e associando o layout padrão.
Alterar:
- config/parameters.php
Se o projeto de destino é uma coleção de 2 níveis superiores, atualize o valor de “collection_home_name” de “topLevelContent” para “topLevelTabletContent” para tablets (ou “topLevelPhoneContent” para telefones).
Agora você está pronto para executar o restante dos exemplos. Quando estiver executando os exemplos, mantenha um navegador com o portal sob demanda aberto na seção “Conteúdo e layouts” para os projetos. Você pode ver as alterações acontecendo ao vivo em seu navegador enquanto executa os exemplos.
O conteúdo dos artigos pode ser criado com HTML ou com o InDesign.
Artigos HTML
Os artigos criados com HTML podem usar CSS/JS para formatar visualmente o conteúdo e torná-lo responsivo. Todo o conteúdo HTML deve estar na mesma pasta (subpastas permitidas). Os arquivos HTML serão agrupados em um “arquivo zip” com um arquivo manifest.xml. O arquivo manifest lista quais artigos são parte do pacote de artigos e contém a soma de verificação MD5. (Consulte Criar artigos HTML para o AEM Mobile.)
Para gerar os arquivos de artigos de uma pasta, você pode usar o utilitário para desktop ou usar o empacotador de exemplos em “class/manifest.php”.
Artigos do InDesign
Usando a Adobe InDesign CS6 ou posterior, você pode criar arquivos de artigos de layout fixo. Usando o plug-in da Digital Publishing, você pode exportar o conteúdo do InDesign para um arquivo de artigos. (Consulte Criar artigos do AEM Mobile no InDesign.)
Para escrever o processo de exportação, você pode usar a função “exportDpsArticle”. Para obter detalhes, consulte Criar artigos baseados no InDesign com scripting.
O fórum da API/integração está disponível para publicar quaisquer perguntas relativas a este artigo ou ao uso das On-Demand Services APIs. Se estiver procurando por suporte individual, entre em contato com o suporte do Adobe Developer (wwds@adobe.com).
20 de junho de 2017
Documentação atualizada:
- Erro de digitação na descrição corrigido.
7 de fevereiro de 2017
Documentação atualizada:
- Adicionado suporte ao conteúdo compartilhado dinâmico em Producer Services.
JSON Schema atualizado:
- Novo JSON Schema para conteúdo compartilhado dinâmico.
Exemplos de API:
- Adicionado suporte para conteúdo compartilhado dinâmico.
1º de novembro de 2016
Documentação atualizada:
- Retorno em lote do status da entidade adicionado.
- Adicionado suporte aos banners dinâmicos em Producer Services e Ingestion Services.
- Adicionado suporte a notificações por push para Android por meio da API Notification Service.
- Recursos adicionados para atualizar a lista de elementos de conteúdo da coleção em um índice especificado.
JSON Schema atualizado:
- Novo esquema JSON para banners dinâmicos adicionado
Exemplos de API atualizados:
- Atualiza Collection::updateContentElements() para verificar se já existem antes de adicionar a entidade à lista de elementos de conteúdo da coleção
- Adicionado suporte aos banners dinâmicos
- Banner dinâmico adicionado aos scripts de demonstração (#13–15)
12 de julho de 2016
Documentação atualizada:
- Produto e pacote do produto atualizados
30 de junho de 2016
Documentação atualizada:
- Adicionadas informações sobre upload de PDFs para o serviço de ingestão
JSON Schema atualizado: 12 de julho de 2016
Documentação atualizada:
- Adicionados campos de metadados adicionais:
- contentSize
- availabilityDate (somente produto e pacote do produto)
- availabilityDateTimezone (somente produto e pacote do produto)
Exemplos de API atualizados:
- Demonstração: #05e atualizar arquivo PDF ao primeiro artigo
- Demonstração: #05f atualizar arquivo PDF ao primeiro artigo e definir deslize horizontal
- Demonstração: #05g verificar status de ingestão para o primeiro artigo
- Alternado para usar o carregador automático para carregar as classes necessárias por script PHP
10 de maio de 2016
Documentação atualizada:
- O serviço de ingestão agora aceita o cabeçalho: aplicativo/pdf
- Rastreie o status de uma publicação/um cancelamento de publicação conhecidos e trabalhos de comprovação
- POST/job retornará a ID do fluxo de trabalho para este trabalho
- GET/status/{publicationID}/publication/00000000-0000-0000-0000-000000000000 retornará a ID de fluxo de trabalho atual (se disponível)
- Compare a ID de fluxo de trabalho atual (se disponível) com a última ID de fluxo de trabalho conhecida
- se a ID de fluxo de trabalho atual === última ID de fluxo de trabalho conhecida, então, o último trabalho ainda está em andamento
- se a ID atual de fluxo de trabalho !== última ID de fluxo de trabalho conhecida, então, o último trabalho está concluído e outro está em progresso
- se a ID de fluxo de trabalho atual estiver vazia, então, o último trabalho está concluído e nenhum outro trabalho está em andamento
Exemplos de API atualizados:
- Demonstração: #05d verificar tamanho atual do arquivo de conteúdo enviado
- Demonstração: #08c rastrear o último status conhecido do fluxo de trabalho