Adobe Experience Manager On-Demand Services API 可讓協力廠商開發人員將產品與隨選服務整合。這些服務可讓您:
- 管理文章
- 管理系列
- 管理產品
- 管理推播通知
On-Demand Services API (先前稱為「Content Producer Service API」) 與隨選入口網站 (https://aemmobile.adobe.com) 所使用的 API 是相同的。

Klaasjan Tukker 和 Mike Yang 在 MAX 2015 會議上發表了這個有關進階工作流程可能性的簡報:
Adobe API 的進階工作流程可能性 (1:25:57)
註解:
一旦下載下列軟體,即表示我確認已閱讀並同意 AEM Mobile 服務授權 API 的條款、Adobe.com 使用條款以及 Adobe 線上隱私權政策。
若要檢視 API 文件 (使用 Swagger 建立),請在網頁伺服器的檔案夾中解壓縮檔案 (例如 MAMP)。
如果 Swagger 文件的代管主機 URL 是 http://localhost:8888/aemmobile-swagger,您可以略過下列步驟。
開啟「service.json」檔案並修改第 55 行,將 basePath 設定為可存取文件的主機+路徑。範例:
#53 "contact": "wwds@adobe.com"
#54 },
#55 "basePath": "http://localhost:8888/your-custom-path"
#56 }
開啟網頁瀏覽器並瀏覽至您部署文件的位置。On-Demand Services API 應該會顯示出來。
請設定專案、建立角色,並將存取權授與用戶。如需詳細資訊,請參閱下列說明文章:
建議您最好避免使用已經被授與「主要帳戶」或「完整專案」管理權限的同一個 Adobe ID。建立只能存取這種作業的 Adobe ID:只能透過 On-Demand Services API 進行的作業。
註解:
若要執行下列範例,請務必使用新的專案開始。
若要存取 On-Demand Services API,您必須申請 API 金鑰。若要申請 API 金鑰,請完成 PDF 表格。將填完的表格傳送至 Adobe 開發人員支援:wwds@adobe.com
下載
如需您何時需要 API 金鑰或何時使用現有金鑰的詳細資訊,請參閱「AEM Mobile API 金鑰用法」。
一旦您收到 API 金鑰之後,就可以產生 device_id 和 device_token。請前往 https://aex.aemmobile.adobe.com 並執行以下作業:
- 提供 API 金鑰
- 使用您申請加入允許名單的 Adobe ID (列在申請表格上) 登入
如果所有條件都滿足,就會產生 device_id 和 device_token。
請解壓縮範例並變更標準值以反映您的帳戶和 API 金鑰。請確定您已在隨選入口網站中建立全新的專案,並且在 API 範例中指派角色給將用來進行通訊的 Adobe ID。
變更:
- config/credentials.php
變更/新增「client_id」(您的 API 金鑰)、「client_secret」、「device_token」、「device_id」(來自 AEX 服務) 的值。
設定「client_version」的值;這個值是在與 On-Demand Services API 通訊時用以識別您的「system」。例如,「aemmobile-learn-api-doc-1.0」
執行:
- demo/01_get_access_token.php
如果設定正確,回應應該會提供「access_token」給您。請在後續的服務呼叫中使用這個 access_token。
變更:
- config/credentials.php
新增「access_token」的值。
執行:
- demo/02_get_user_permissions.php
如果設定正確,回應應該會提供 Adobe ID (device_id/device_token 為其而產生) 擁有存取權的專案清單。
選取您想要進行互動的專案 (這應該是最近建立的新專案)。專案識別碼為 GUID,例如「8dbeb5da-ca73-d0da-b0b0-885fb83e7ae8」。
變更:
- Config/parameters.php
使用您的專案 ID (以上述方式取得) 更新「publication_id」。
執行:
- demo/03_update_home_collection.php
如果設定正確,這將使頂層系列變為可發佈狀態:上傳縮圖和背景影像、設定產品 ID,以及與預設版面相關聯。
變更:
- config/parameters.php
如果目標專案為 2 個頂層的系列,若是平板電腦,請將「collection_home_name」的值從「topLevelContent」更新為「topLevelTabletContent」(若是手機則更新為「topLevelPhoneContent」)。
您現在可以準備執行其餘範例了。當您在執行範例時,請保持瀏覽器開啟隨選入口網站的狀態,並指向專案的「內容與版面」區段。然後,您就可以在執行範例時,看見變更在瀏覽器中即時進行。
您可以使用 HTML 或 InDesign 來建立文章的內容。
HTML 文章
以 HTML 建立的文章可以使用 CSS/JS 來設定內容的視覺樣式並加入互動性。所有 HTML 內容都應該位於相同的檔案夾中 (允許子檔案夾)。HTML 檔案將封裝成包含 manifest.xml 檔案的「Zip 檔案」。資料清單檔案會列出屬於文章封裝一部分的文章,而且包含 MD5 總和檢查碼 (請參閱「建立適用於 AEM Mobile 的 HTML 文章」)。
若要從檔案夾產生文章檔案,您可以使用桌面公用程式或使用「class/manifest.php」中的範例封裝程式。
InDesign 文章
您可以使用 Adobe InDesign CS6 或更新版本來建立固定版面文章檔案。您可以使用 Digital Publishing 增效模組,將 InDesign 內容匯出至文章檔案 (請參閱「在 InDesign 中建立 AEM Mobile 文章」)。
若要編寫匯出程序的指令碼,您可以使用「exportDpsArticle」函數。如需詳細資訊,請參閱「使用指令碼建立以 InDesign 為基礎的文章」。
API / 整合論壇可讓您提出任何有關這篇文章或 On-Demand Services API 使用方面的問題。如果您在尋找一對一支援,請聯絡 Adobe 開發人員支援 (wwds@adobe.com)。
2017 年 6 月 20 日
更新的文件:
- 已修正描述中的錯字。
2017 年 2 月 7 日
更新的文件:
- 已新增跨 Producer Services 的動態共用內容支援。
更新的 JSON 結構描述:
- 已新增動態共用內容的新 JSON 結構描述
API 範例:
- 已新增動態共用內容的支援
2016 年 11 月 1 日
更新的文件:
- 已新增實體狀態的批次傳回。
- 已新增跨 Producer 和 Ingestion Services 的動態橫幅支援。
- 已新增透過 Notification Service API 的 Android 推播通知支援
- 已新增在指定索引處更新系列的內容元素清單的能力。
更新的 JSON 結構描述:
- 已新增動態橫幅的新 JSON 結構描述
更新的 API 範例:
- 在將實體附加至系列的內容元素清單之前,更新 Collection::updateContentElements() 以檢查是否已存在
- 已新增動態橫幅的支援
- 已將動態橫幅新增至示範指令碼 (#13–15)
2016 年 7 月 12 日
更新的文件:
- 更新的文件和產品組
2016 年 6 月 30 日
更新的文件:
- 已新增有關擷取服務之 PDF 上傳的資訊
更新的 JSON 結構描述:2016 年 7 月 12 日
更新的文件:
- 已新增其他中繼資料欄位:
- contentSize
- availabilityDate (僅限產品與產品組)
- availabilityDateTimezone (僅限產品與產品組)
更新的 API 範例:
- 示範:#05e 將 PDF 檔案更新至文章一
- 示範:#05f 將 PDF 檔案更新至文章一,並設定水平滑動
- 示範:#05g 檢查文章一的擷取狀態
- 已切換成使用自動載入器,以便載入每個 PHP 指令碼所需的類別
2016 年 5 月 10 日
更新的文件:
- 擷取服務現在可接受表頭:application/pdf
- 追蹤已知發佈/解除發佈和預備工作的狀態
- POST /job 將傳回這項工作的工作流程 ID
- GET /status/{publicationID}/publication/00000000-0000-0000-0000-000000000000 將傳回目前的工作流程 ID (如果有提供)
- 比較目前的工作流程 ID (如果有提供) 與上一個已知的工作流程 ID
- 如果目前的工作流程 ID === 上一個已知的工作流程 ID,則表示上一個工作仍在處理中
- 如果目前的工作流程 ID !== 上一個已知的工作流程 ID,則表示上一個工作已完成,目前有另一個工作正在處理中
- 如果目前的工作流程 ID 是空的,則表示上一個工作已完成,目前沒有其他工作在處理中
更新的 API 範例:
- 示範:#05d 檢查目前已上傳的內容檔案大小
- 示範:#08c 追蹤上一個已知的工作流程狀態