Requisitos

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
  • Experiência com a On-Demand Services API

Produtos necessários

  • AEM Mobile
  • Chave da API
  • Acesso à On-Demand Services API

 

Introdução

O Experience Manager Mobile On-Demand Services SDK para PHP é uma biblioteca que permite aos desenvolvedores de terceiros se integrar facilmente à On-Demand Services API (anteriormente denominada “Content Producer Service API”).

O SDK ajudará desenvolvedores PHP cuidando de várias sobrecargas, como práticas recomendadas, segurança à prova de falhas para erros e diretrizes menores, mas importantes, como o ajuste dos cabeçalhos corretos por solicitação de API.

Baixar o On-Demand Services SDK para PHP

Observação:

Ao baixar o software relacionado abaixo, eu reconheço que li e concordo com os termos da Licença para APIs de Experience Manager Mobile Services, os Termos de uso da Adobe.com e a Política de privacidade online da Adobe.

Download

Para obter uma lista de alterações recentes, consulte o log de alterações no final deste documento.

Compreensão dos conceitos

A On-Demand Services API exigirá acesso autorizado; portanto, é importante entender e concluir esta seção antes de continuar.

Autenticação

Para cada solicitação do cliente (HTTPS) feita usando a On-Demand Services API, você deve fornecer o seguinte nos cabeçalhos de solicitação:

  • X-Dps-Api-Key: {{client_id}}
  • Autorização: portador {{access token}}

A chave da API concede acesso do cliente à On-Demand Services API, enquanto o token de acesso identifica a conta do cliente.

Para solicitar uma chave da API, consulte a documentação da On-Demand Services API e baixe e preencha o formulário de solicitação conforme descrito na documentação.

Depois de receber a chave da API, você pode gerar um token de acesso. Para gerar o token de acesso, faça o seguinte:

  1. Vá para o AEX Device Token Generator.
  2. Insira uma ID válida do cliente.
  3. Faça logon com uma Adobe ID válida.
  4. Caso haja êxito, uma ID do dispositivo e um token de dispositivo serão gerados.
  5. Faça uma solicitação de API usando a ID do cliente, a ID do dispositivo e o token de seu dispositivo para gerar o token de acesso.

Notas de autenticação:

  • O token de acesso expirará dentro de 24 horas.
  • A ID do dispositivo e o token de seu dispositivo serão renovados automaticamente desde que estejam sendo usados. O cliente pode usar a ID do dispositivo e o token para gerar novos tokens de acesso quando necessário.
  • A ID do dispositivo e o token do dispositivo ficarão inválidos se a senha para a conta que foi usada para gerá-los tiver sido atualizada. Se isso acontecer, gere um novo conjunto de IDs e de tokens de dispositivo.

 

Autorização

Durante o processo de solicitação da chave da API, você pode solicitar até três Adobe IDs que concederão acesso ao AEX Device Token Generator. Isso significa que você só pode obter acesso aos projetos com um máximo de três Adobe IDs. No entanto, com nossas novas Funções e permissões, você adiciona a Adobe ID a qualquer número de projetos.

Por exemplo, se você tiver projetos na conta A, B e C, poderá adicionar a conta A aos projetos na conta B e C. Dessa forma, você só precisará gerar a ID do dispositivo e o token do dispositivo para a conta A, e ela terá acesso aos projetos dentro das contas A, B e C.

Princípios básicos

O SDK para PHP segue o fluxo de trabalho do PHP PSR-4, usando o carregador automático e o namespace para carregar as classes necessárias.

Carregador automático

O carregador automático está localizado em /aemmobilesdk/vendor/autoload.php. Você pode carregar o carregador automático usando o método a seguir, substituindo a parte path/to dependendo do local do arquivo PHP relativo ao carregador automático:

require_once('path/to/aemmobilesdk/vendor/autoload.php');

Namespace

O namespace para o nome da classe seguirá a estrutura de pastas em /aemmobilesdk/. Por exemplo, o objeto de classe “Article” está localizado em /aemmobilesdk/contentService/Article.php, e o namespace seria o seguinte:

use aemmobilesdk\contentService\Article

Observe que o namespace faz distinção entre maiúsculas e minúsculas em algumas versões do PHP; é melhor usar a capitalização exata do nome da pasta/arquivo.

Nome da classe

Cada objeto de classe representa um componente no AEM Mobile e tratará apenas dentro da sua própria área de especialização. Por exemplo, o objeto de classe “Article” lidará somente com tarefas relacionadas ao artigo, como fazer upload de um arquivo zip .article. Você não poderá usar um objeto de classe “Article” para adicionar um artigo a uma coleção, que é o objetivo do objeto de classe “Collection”.

Configuração

Todos os objetos de classe exigirão uma instância do cliente do usuário durante a inicialização. Todos os objetos de classe abstratos não devem ser inicializados (e não podem ser inicializados).

Cliente do usuário

O objeto de classe “User” representa o cliente do usuário e conterá o seguinte:

  • Credenciais do cliente
  • ID do projeto do cliente
  • Execução de solicitação da API

Para inicializar o cliente do usuário, você precisará especificar o namespace (como ocorre com outros objetos de classe).

use aemmobilesdk\userService\User; 
$objUser = new User();

As credenciais do cliente podem ser definidas em /aemmobilesdk/configuration/Credentials.php e serão carregadas automaticamente ou durante o tempo de execução chamando as seguintes funções:

$objUser->setClientId('enter-your-client-id');
$objUser->setClientSecret('enter-your-client-secret');
$objUser->setDeviceId('enter-your-device-id');
$objUser->setDeviceToken('enter-your-device-token');

Para gerar o token de acesso, você pode chamar estas duas funções, que solicitam e armazenam o token de acesso na sessão do PHP, respectivamente:

$objUser->requestToken(); 
$objUser->storeToken();

Para direcionar um projeto, você deve especificar a ID do projeto:

$objUser->setPublicationGuid('68957c92-99c2-47a3-8f54-83771ba21348');

A ID do projeto pode ser encontrada no URL no painel (ou seja, https://aemmobile.adobe.com/content/index.html#/publication/68957c92-99c2-47a3-8f54-83771ba21348/content) ou por meio da API. Para usar a última opção, você pode usar a seguinte função para obter a lista de projetos que está associada a este cliente do usuário:

$objUser->requestPermissions(); 
$arrPermissionList = $objUser->getResponse();

Como prática recomendada, você deve verificar se o usuário do cliente tem as funções e permissões corretas antes de acessar o projeto especificado:

$objUser->requestPermissions(); 
$objUser->verifyPermissions();

Solicitação de API

As funções de cada objeto de classe vão gerar corretamente os cabeçalhos de solicitação e os dados, mas a execução real reside no objeto de classe “User”, conforme mencionado anteriormente. Para inicializar o objeto de classe, o processo é semelhante a inicializar o cliente do usuário:

use aemmobilesdk\contentService\Article; 
$objArticle = new Article($objUser);

Persistência de dados

O usuário é responsável por manter a persistência dos metadados. Por exemplo, há uma coleção com dois artigos e um banner, e você deseja adicionar um terceiro artigo à coleção. Primeiro você deve obter a lista dos dois artigos e banner existentes dentro dessa coleção, adicionar (ou anexar) o terceiro artigo à lista e atualizar a coleção com os quatro itens. Caso contrário, se você apenas atualizar a coleção com o terceiro artigo, a coleção terá apenas o terceiro artigo; os outros três serão removidos.

Teste com fórmulas

Fornecemos fórmulas que você pode usar para prova de conceitos. Elas estão localizadas em /recipes/. Observe que o SDK para PHP ainda está em desenvolvimento. Nós forneceremos atualizações constantemente para melhorar o SDK para PHP e conciliaremos quaisquer recursos novos no AEM Mobile.

Log de alterações

 

Atualizações de 01/11/2016

  • Suporte e fórmulas adicionados aos banners dinâmicos.
  • Adicionado suporte para fazer upload de PDF diretamente ao serviço de ingestão (apenas para artigos).

Atualizações de 22/02/2016

  • O diretório do SDK foi atualizado de dps2015sdk para aemmobilesdk. Todos os namespaces de SDK do PHP atuais e futuros devem ser atualizados para aemmobilesdk (especificamente, use aemmobilesdk\userService\User;).
  • Um parâmetro opcional foi adicionado a Entity::publish() e Entity::unpublish(). Isso permitirá ações de publicação e cancelamento de publicação em massa. O parâmetro opcional deve conter uma lista de matriz da entidade HREF com versões principais.
  • Um parâmetro opcional foi adicionado a Entity::getHref(). Isso permitirá a coleta da entidade HREF sem a versão principal. Usado principalmente para adicionar entidades a uma coleção, uma vez que é opcional fornecer a versão principal.
  • A lógica em recipes/publication/reset.php (anteriormente como deleteAll.php) foi atualizada. Essa fórmula agora usará a entidade em massa atualizada Entity::unpublish() para cancelar a publicação de uma lista de entidades (baseadas em dependências) em vez de cancelar a publicação individualmente.

Atualizações de 06/01/2016

  • Armazena os metadados necessários da entidade internos.
  • Classe da entidade depois de fazer uma solicitação Entity::update().
  • Collection::removeEntity() adicionada para remover uma entidade específica da lista de elementos de conteúdo da coleção armazenados na classe Collection. Precisará chamar Collection::requestContentElements() antes de usar esta nova função; caso contrário, a lista dentro da classe Collection estará em branco.
  • Classe estática Utility adicionada para manipular as funções mais genéricas, como gerar carimbo de data e hora, objetos de estilo de formatação e assim por diante.
  • Em recipes/product/genIssueList.php, a fórmula baixará agora as imagens em miniatura (e o plano de fundo), se disponível, e ainda não tiver sido baixado. Uma fórmula separada (consulte recipes/product/downloadImage.php) foi criada para baixar somente as imagens, aliviando o tempo de carregamento de genIssueList.php.
  • Fórmula adicionada para adicionar um artigo a uma coleção (consulte recipes/collection/addArticle.php).
  • Fórmula adicionada para remover um artigo de uma coleção (consulte recipes/collection/removeArticle.php).
  • Fórmula adicionada para publicar todas as entidades (não apenas as entidades imediatas) de uma coleção (consulte recipes/collection/publishAllChildren.php).

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online