Requisiti

Conoscenza dei prerequisiti

  • Informazioni su AEM Mobile
  • Conoscenza della creazione e della pubblicazione di contenuto tramite il portale on-demand standard
  • Fate esperienza con On-Demand Services API

Prodotti richiesti

  • AEM Mobile
  • Chiave API
  • Accesso a On-Demand Services API

 

Introduzione

Experience Manager Mobile On-Demand Services SDK per PHP è una libreria che consente agli sviluppatori di terze parti di integrarsi facilmente con On-Demand Services API (in precedenza denominata “Content Producer Service API”).

SDK consentirà agli sviluppatori PHP di occuparsi di vari overhead, quali procedure ottimali, failsafe per errori e indicazioni minori ma tuttavia importanti quale l'impostazione delle intestazioni corrette per la richiesta di API.

Scaricate On-Demand Services SDK per PHP

Nota:

scaricando il software elencato di seguito, l'utente dichiara di aver letto e accettato i termini della Licenza API per Experience Manager Mobile Services, le Condizioni d'uso di Adobe.com e l'Informativa sulla privacy online di Adobe.

Scarica

Per un elenco delle modifiche recenti, consultate il registro delle modifiche alla fine del presente documento.

Conoscenza dei concetti

On-Demand Services API richiederà l'accesso autorizzato. Pertanto, è importante conoscere e completare questa sezione prima di continuare.

Autenticazione

Per ogni richiesta client (HTTPS) eseguita tramite On-Demand Services API, è necessario fornire quanto segue nelle intestazioni della richiesta:

  • X-Dps-Api-Key: {{client_id}}
  • Authorization: Bearer {{access token}}

La chiave API concederà al client l'accesso a On-Demand Services API, mentre il token di accesso identifica l'account client.

Per richiedere una chiave API, visualizzate la documentazione di On-Demand Services API, quindi scaricate e completate il modulo di richiesta come descritto nella documentazione.

Dopo aver ricevuto la chiave API, potete generare un token di accesso. Per generare il token di accesso, effettuate le seguenti operazioni:

  1. Andate ad AEX Device Token Generator.
  2. Immettete un ID client valido.
  3. Effettuate l'accesso con un Adobe ID valido.
  4. Verranno generati un ID dispositivo e un token dispositivo.
  5. Eseguite una richiesta API utilizzando l'ID client, l'ID dispositivo e il token dispositivo per generare il token di accesso.

Note sull'autenticazione:

  • Il token di accesso scade entro 24 ore.
  • L'ID dispositivo e il token dispositivo si rinnoveranno automaticamente fin quando vengono utilizzati. Il client può utilizzare l'ID dispositivo e il token per generare nuovi token di accesso quando necessario.
  • L'ID dispositivo e il token dispositivo non saranno validi se la password per l'account utilizzata per generarli è stata aggiornata. In tal caso, generate una nuova serie di ID dispositivo e token dispositivo.

 

Autorizzazione

Durante il processo di richiesta della chiave API, potete richiedere fino a tre Adobe ID ai quali sarà concesso l'accesso a AEX Device Token Generator. Ciò significa che potete avere accesso solo ai progetti entro un massimo di tre Adobe ID. Tuttavia, con la nostra nuova opzione Ruoli e autorizzazioni, potete aggiungere l'Adobe ID a qualsiasi numero di progetti.

Ad esempio, se avete progetti nell'account A, B e C, potete aggiungere l'account A ai progetti nell'account B e C. In questo modo, dovrete generare solo l'ID dispositivo e il token dispositivo per l'account A e questo avrà accesso ai progetti negli account A, B e C.

Guida introduttiva

SDK per PHP segue il flusso di lavoro di PHP PSR-4, utilizzando l'autoloader e lo spazio dei nomi per caricare le classi necessarie.

Autoloader

L'autoloader si trova in /aemmobilesdk/vendor/autoload.php. Potete caricare l'autoloader mediante il seguente metodo, sostituendo la parte path/to a seconda della posizione del file PHP nell'autoloader:

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

Spazio dei nomi

Lo spazio dei nomi per il nome della classe seguirà la struttura di cartelle all'interno di /aemmobilesdk/. Ad esempio, l'oggetto della classe “Articolo” si trova in /aemmobilesdk/contentService/Article.php e lo spazio dei nomi sarà quello indicato di seguito:

use aemmobilesdk\contentService\Article

Lo spazio dei nomi supporta la distinzione tra maiuscole e minuscole in alcune versioni di PHP. È opportuno utilizzare in modo esatto le maiuscole/minuscole per il nome del file o della cartella.

Nome della classe

Ciascun oggetto di classe rappresenta un componente in AEM Mobile, e si occupa della gestione solo all'interno della relativa area di esperienza. Ad esempio, l'oggetto di classe “Articolo” gestirà solo le attività correlate all'articolo, come il caricamento di un file zip .article. Non potrete utilizzare un oggetto di classe “Articolo” per aggiungere un articolo a una raccolta, in quanto l'oggetto di classe “Raccolta” è destinato alla raccolta.

Impostazione di

Tutti gli oggetti di classe richiederanno un'istanza del client utente durante l'inizializzazione. Tutti gli oggetti di classe astratti non devono essere inizializzati (né possono esserlo).

Client utente

L'oggetto di classe “Utente” rappresenta il client utente e conterrà i seguenti elementi:

  • credenziali client
  • ID progetto client
  • esecuzione della richiesta API

Per inizializzare il client utente, dovrete specificare lo spazio dei nomi (come con gli altri oggetti di classe):

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

Le credenziali client possono essere impostate in /aemmobilesdk/configuration/Credentials.php e saranno caricate automaticamente o durante il runtime chiamando le seguenti funzioni:

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

Per generare il token di accesso, potete chiamare le due funzioni di seguito, che rispettivamente richiedono e memorizzano il token di accesso nella sessione PHP:

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

Per impostare come destinazione un progetto, dovete specificare l'ID progetto:

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

L'ID progetto può essere trovato nell'URL del dashboard (vale a dire, https://aemmobile.adobe.com/content/index.html#/publication/68957c92-99c2-47a3-8f54-83771ba21348/content) o tramite l'API. Per utilizzare quest'ultima, potete usare la seguente funzione e ottenere l'elenco dei progetti associato a questo client utente:

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

Di regola, dovete verificare che l'utente client disponga dei ruoli e delle autorizzazioni corrette prima di accedere al progetto specificato:

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

Richiesta API

Ciascuna funzione dell'oggetto di classe genererà correttamente l'intestazione della richiesta e i dati, ma l'esecuzione effettiva avviene nell'oggetto di classe “Utente”, come indicato in precedenza. L'inizializzazione dell'oggetto di classe è un processo simile all'inizializzazione del client utente:

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

Persistenza dei dati

L'utente ha il compito di mantenere la persistenza dei metadati. Ad esempio, una raccolta ha due articoli e un banner e desiderate aggiungere un terzo articolo alla raccolta. Dovete innanzitutto ottenere l'elenco dei due articoli esistenti e del banner all'interno di questa raccolta, aggiungere (o anteporre) il terzo articolo nell'elenco, quindi aggiornare la raccolta con tutti e quattro gli elementi. In caso contrario, se aggiornate solo la raccolta con il terzo articolo, questa ora conterrà solo il terzo articolo, mentre gli altri tre elementi verranno rimossi.

Sperimentazione delle ricette

Abbiamo fornito delle ricette che potete utilizzare per mettere alla prova i concetti. Si trovano in /recipes/. SDK per PHP è ancora in fase di sviluppo. Forniremo costantemente aggiornamenti per migliorare SDK per PHP e accogliere nuove funzionalità in AEM Mobile.

Registro delle modifiche

 

Aggiornamenti del 01/11/2016

  • Aggiunto il supporto e le ricette per il banner dinamico.
  • Aggiunto il supporto per il caricamento di file PDF direttamente nel servizio di inserimento (solo per l'articolo).

Aggiornamenti del 22/02/2016

  • La directory dell'SDK viene aggiornata da dps2015sdk ad aemmobilesdk. Tutti gli spazi dei nomi esistenti e futuri dell'SDK PHP devono essere aggiornati ad aemmobilesdk (in modo specifico, utilizzate aemmobilesdk\userService\User;).
  • È stato aggiunto un parametro opzionale a Entity::publish() ed Entity::unpublish(). Ciò consentirà la pubblicazione e l'annullamento della pubblicazione in blocco delle azioni. Il parametro opzionale deve contenere un elenco matrice di HREF entità con versioni di intestazione.
  • È stato aggiunto un parametro opzionale a Entity::getHref(). In tal modo sarà possibile gestire l'HREF entità senza la versione di intestazione. Utilizzato principalmente per aggiungere le entità a una raccolta, dal momento che la fornitura della versione di intestazione è opzionale.
  • È stata aggiornata la logica in recipes/publication/reset.php (in precedenza come deleteAll.php). Questa ricetta ora utilizzerà il blocco aggiornato Entity::unpublish() per annullare la pubblicazione di un elenco di entità (basato sulle dipendenze) piuttosto che annullare la pubblicazione singolarmente.

Aggiornamenti del 06/01/2016

  • Consente di archiviare i metadati dell'entità necessari interni.
  • Classe dell'entità dopo una richiesta Entity::update().
  • È stato aggiunto Collection::removeEntity() per rimuovere una specifica entità dall'elenco degli elementi di contenuto della raccolta archiviati nella classe Collection. Prima di utilizzare questa nuova funzione, sarà necessario chiamare Collection::requestContentElements(). In caso contrario, l'elenco all'interno della classe Collection sarà vuoto.
  • È stata aggiunta una classe statica Utility per gestire funzioni più generiche, ad esempio generare timestamp, oggetti pretty-print e così via.
  • In recipes/product/genIssueList.php, la ricetta scaricherà le immagini in miniatura (e di sfondo), se disponibili e se non già scaricate. È stata creata un'altra ricetta (consultate recipes/product/downloadImage.php) per scaricare solo le immagini, in modo da ridurre il tempo di caricamento di genIssueList.php.
  • È stata aggiunta una ricetta per aggiungere un articolo a una raccolta (consultate recipes/collection/addArticle.php).
  • È stata aggiunta una ricetta per rimuovere un articolo da una raccolta (consultate recipes/collection/removeArticle.php).
  • È stata aggiunta una ricetta per pubblicare tutte le entità (non solo quelle immediate) di una raccolta (consultate recipes/collection/publishAllChildren.php).

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online