需求

必備知識

  • 了解 AEM Mobile
  • 透過標準的隨選入口網站建立及發佈內容的知識

必要產品

  • AEM Mobile

簡介

Adobe Experience Manager On-Demand Services API 可讓協力廠商開發人員將產品與隨選服務整合。這些服務可讓您:

  • 管理文章
  • 管理系列
  • 管理產品
  • 管理推播通知

On-Demand Services API (先前稱為「Content Producer Service API」) 與隨選入口網站 (https://aemmobile.adobe.com) 所使用的 API 是相同的。

Adobe Digital Publishing Solution Content Producer Service API

與 AEM 編寫整合

您可以使用 AEM 來產生 AEM Mobile 應用程式適用的內容。如需詳細資訊,請與您的 Adobe 代表聯絡。

協力廠商整合

下列編輯工作流程系統、內容管理系統 (CMS) 和網路型編寫解決方案都可進行整合 (由 Adobe 合作夥伴提供):

CMS 系統

網路型編寫
工作流程系統

整合影片簡介

Klaasjan Tukker 和 Mike Yang 在 MAX 2015 會議上發表了這個有關進階工作流程可能性的簡報:

Adobe API 的進階工作流程可能性 (1:25:57)

下載

若要開始使用 On-Demand Services API,請下載下列檔案。

註解:

一旦下載下列軟體,即表示我確認已閱讀並同意 AEM Mobile 服務授權 API 的條款、Adobe.com 使用條款以及 Adobe 線上隱私權政策

下載

這個 .zip 檔案包含下列項目:

  • API 文件
  • JSON 結構描述定義
  • 程式碼範例
  • InDesign 指令碼範例
  • API 金鑰申請表格

 

如何使用 API 文件

若要檢視 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 進行的作業。

註解:

若要執行下列範例,請務必使用新的專案開始。

API 金鑰

若要存取 On-Demand Services API 以及與協力廠商系統整合,您需要 API 金鑰。

申請 API 金鑰

若要存取 On-Demand Services API,您必須申請 API 金鑰。若要申請 API 金鑰,請完成 PDF 表格。將填完的表格傳送至 Adobe 開發人員支援:wwds@adobe.com

下載

如需您何時需要 API 金鑰或何時使用現有金鑰的詳細資訊,請參閱「AEM Mobile API 金鑰用法」。

產生 device_id 和 device_token

一旦您收到 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 追蹤上一個已知的工作流程狀態

此産品由 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授權  Creative Commons 條款未涵蓋 Twitter™ 與 Facebook 文章。

法律說明   |   線上隱私權政策