推播通知 push-notifications
能夠立即以重要通知提醒您的Adobe Experience Manager (AEM)行動應用程式使用者,對行動應用程式的價值及其行銷活動至關重要。 以下說明讓應用程式接收推播通知所必須採取的步驟。 您也會瞭解如何設定推送,並從AEM Mobile傳送至手機上安裝的應用程式。 此外,本節也說明如何設定推播通知的深層連結功能。
搭配AEM使用推播通知需要幾項不同的技術。 首先,推播通知服務提供者必須用來管理推播通知和裝置(AEM尚未執行此操作)。 兩個提供者已使用AEM立即設定: Amazon Simple Notification Service (或SNS)和Pushwoosh。 第二,特定行動作業系統的推送技術必須通過適當的服務 — 適用於iOS裝置的Apple推送通知服務(或APNS),以及適用於Android™裝置的Google雲端通訊(或GCM)。 雖然AEM不會直接與這些平台專屬服務通訊,但AEM必須隨同通知提供一些相關設定資訊,這些服務才能執行推送。
安裝及設定完成後(如下所述),其運作方式如下:
- 推播通知會在AEM中建立,並傳送給服務提供者(Amazon SNS或Pushwoosh)。
- 服務提供者會接收該檔案,並將其傳送給核心提供者(APNS或GCM)。
- 核心提供者會將通知推播至已註冊該推播的所有裝置。 對於每個裝置,它會使用行動資料網路或WiFi,以裝置上可用的任何專案為準。
- 如果為其註冊的應用程式未執行,則通知會顯示在裝置上。 使用者點選通知會啟動應用程式,並在應用程式中顯示通知。 如果應用程式已在執行中,則只會顯示應用程式內通知。
此版本的AEM支援iOS和Android™行動裝置。
概述與程式 overview-and-procedure
若要在AEM Mobile應用程式中使用推播通知,必須執行下列高階步驟。
通常Experience Manager開發人員會執行以下操作:
- 註冊Apple和Google訊息服務
- 註冊推送訊息服務並進行設定
- 將推送支援新增至應用程式
- 準備電話以進行測試
當Experience Manager管理員執行下列操作時:
- 在AEM應用程式上設定推播
- 建置和部署應用程式
- 傳送推播通知
- 設定深層連結 (選擇性)
步驟1:註冊Apple和Google訊息服務 step-register-with-apple-and-google-messaging-services
使用Apple推播通知服務(APNS) using-the-apple-push-notification-service-apns
前往Apple頁面這裡熟悉Apple推播通知服務。
若要使用APN,您需要Apple的 憑證 檔案(.cer檔案)、推播 私密金鑰 (.p12檔案)和 私密金鑰密碼。 有關如何執行此動作的說明,請參閱這裡。
使用Google雲端通訊(GCM)服務 using-the-google-cloud-messaging-gcm-service
前往Google頁面這裡,熟悉Android™的Google雲端通訊。
請依照下列步驟至 建立Google API專案、啟用GCM服務 以及 取得API金鑰。 您需要 API金鑰 才能將推播通知傳送至Android™裝置。 此外,請記錄您的 專案編號,有時也稱為 GCM寄件者識別碼。
下列步驟顯示建立GCM API金鑰的不同方法:
- 登入Google並移至Google的Developer頁面。
- 從清單中選擇您的應用程式(或建立一個)。
- 在Android™封裝名稱下,輸入您的應用程式ID,也就是
com.adobe.cq.mobile.weretail.outdoorsapp
。 (如果這樣還是不行,請用「test.test」再試一次。) - 按一下 繼續選擇並設定服務
- 選取[雲端通訊],然後按一下[啟用Google雲端通訊] 。
- 接著會顯示新的伺服器API金鑰和(新的或現有的)寄件者ID。
步驟2:註冊並設定推送訊息服務 step-register-and-configure-a-push-messaging-service
AEM已設定為使用下列三個推送通知服務之一:
- Amazon SNS
- Pushwoosh
- Adobe行動服務
Amazon SNS 和 Pushwoosh 設定可讓您從AEM畫面內傳送推播訊息。
Adobe Mobile Services 設定可讓您使用Adobe Analytics帳戶從Adobe Mobile Services中設定及傳送推播通知(但應用程式必須透過此設定集建置,才能啟用AMS推播通知)。
使用Amazon SNS傳訊服務 using-the-amazon-sns-messaging-service
如果您不想要使用Amazon SNS,可以略過這些步驟。
請依照下列步驟設定推播通知的Amazon SNS:
-
註冊Amazon SNS
- 記錄您的帳戶ID。 格式應為12位數,不含空格或破折號,即"123456789012"。
- 確定您位於「美國東部」或「歐盟」地區,因為後續步驟(建立身分識別集區)需要這些步驟之一。
- 註冊之後,登入管理主控台並選取SNS (推播通知服務)。 如果出現,請按一下[開始使用]。
-
建立存取金鑰與識別碼
- 按一下畫面右上角的登入名稱,然後從功能表選擇[安全性認證]。
- 按一下[存取金鑰],然後在下面的空白處按一下[建立新的存取金鑰] 。
- 按一下 顯示存取金鑰,然後複製並儲存顯示的存取金鑰ID和機密存取金鑰。 如果選擇下載金鑰的選項,您會得到包含這些相同值的csv檔案。
- 您可以在此頁面管理其他安全性相關憑證,以及某些其他憑證。
note note NOTE 存取金鑰可用於多個應用程式。 對於使用「AWS沙箱」帳戶的組織,步驟類似,並概述如下:
- 按一下畫面右上角的登入名稱,然後從功能表選擇「我的安全性認證」。
- 按一下動作左側清單中的「使用者」 ,然後選擇您的使用者名稱。
- 按一下「保全性證明資料」標籤。
- 從這裡,您可以看到您的金鑰並建立新的金鑰。 儲存金鑰以供稍後使用。
-
建立主題
- 按一下 建立主題,然後選擇主題名稱。 記錄所有欄位,例如「主題ARN」、「主題擁有者」、「區域」、「顯示名稱」。
- 按一下 其他主題動作 > 編輯主題原則。 在 允許這些使用者訂閱此主題 下,選取 所有人。
- 按一下 更新原則。
note note NOTE 您可以針對不同的情境建立多個主題,例如開發、測試和示範。 其餘的SNS設定可以維持不變。 使用不同主題建置應用程式;傳送至該主題的推播通知將只會由該主題建置的應用程式接收。 -
建立平台應用程式
-
按一下應用程式,然後按一下建立平台應用程式。 選擇名稱並選取平台(APNS適用於iOS,GCM適用於Android™)。 視平台而定。 其他欄位必須填寫:
- 對於APNS,必須輸入P12檔案、密碼、憑證和私密金鑰。 這些應該已在上述步驟 使用Apple推播通知服務(APNS) 中取得。
- 對於GCM,必須輸入API金鑰。 這應在上述步驟 使用Google雲端通訊(GCM)服務 中取得。
-
針對您支援的每個平台重複上述步驟一次。 若要同時推送至iOS和Android™,您必須建立兩個平台應用程式。
-
-
建立識別集區
- 使用Cognito建立身分識別集區,此集區會儲存未驗證使用者的基本資料。 請注意,Amazon Cognito目前僅支援「美國東部」和「歐盟」地區。
- 為其命名,並勾選「啟用對未驗證身分的存取」方塊。
- 在下一頁(「您的Cognito身分需要存取您的資源」)按一下[允許]。
- 在頁面的右上角,按一下連結"編輯身分識別集區"。 此時會顯示身分識別集區ID。 儲存此文字以供稍後使用。
- 在同一頁面上,選擇「Unauthenticated role」旁的下拉式清單,並確定已選取角色Cognito_<pool name>UnauthRole。 儲存您的變更。
-
設定存取權
- 登入識別與存取管理 (IAM)。
- 選取角色。
- 按一下在上一步建立的角色,稱為Cognito_<yourIdentityPoolName>Unauth_Role。 記錄顯示的「角色ARN」。
- 開啟「內嵌原則」(如果尚未開啟)。 您應該會看到名稱為oneClick_Cognito_<yourIdentityPoolName>Unauth_Role_1234567890123的原則。
- 按一下「編輯原則」。 將原則檔案的內容替換為此JSON片段:
table 0-row-1 html-authored no-header {
「版本」:「2012-10-17」,
"Statement": [
{
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*",
"SNS:CreatePlatformEndpoint",
"SNS:Subscribe"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
- 按一下 套用原則。
使用Pushwoosh傳訊服務 using-the-pushwoosh-messaging-service
如果您不想要使用Pushwoosh,可以略過此步驟。
若要使用Pushwoosh:
-
註冊Pushwoosh
- 前往pushwoosh.com並建立帳戶。
-
建立API存取權杖
- 在Pushwoosh網站上,前往API存取功能表專案來產生API存取權杖。 安全地記錄此權杖。
-
建立應用程式
- 如需Android™支援,您必須提供您的GCM API金鑰。
- 設定應用程式時,請選擇Cordova做為架構。
- 若為iOS支援,您必須提供憑證檔案(.cer)、推播憑證(.p12)和私密金鑰密碼;這些應該已從Apple的APNS網站取得。 針對「架構」,請選擇「Cordova」。
- Pushwoosh會為該應用程式產生一個應用程式ID,格式為「XXXXX-XXXXX」,其中每個X都是十六進位值(0到F)。
步驟3:將推送支援新增至應用程式 step-add-push-support-to-the-app
新增ContentSync設定 add-contentsync-configuration
建立兩個名為notificationsConfig的內容節點(一個在app-config中,一個在app-config-dev中):
- /content/
<your app>
/shell/jcr:content/pge-app/app-config-dev/notificationsConfig - /content/
<your app>
/shell/jcr:content/pge-app/app-config/notificationsConfig
使用以下屬性(.content.xml檔案) :
<jcr:root xmlns:jcr=" https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/1.0/index.html" xmlns:nt=" https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/1.0/index.html"
jcr:primaryType="nt:unstructured"
excludeProperties="[appAPIAccessToken]"
path="。./…/…/…"
targetRootDirectory="www"
type="notificationsconfig"/>
新增使用者端資料庫 add-client-libraries
您必須依照下列步驟,將推播通知使用者端程式庫新增至應用程式:
CRXDE Lite:
- 導覽至 /etc/designs/phonegap/<應用程式名稱>/clientlibsall。
- 在屬性窗格中連按兩下內嵌區段。
- 在出現的對話方塊中,按一下+按鈕以新增使用者端程式庫。
- 在新文字欄位中新增"cq.mobile.push",然後按一下「確定」。
- 再新增一個名為cq.mobile.push.amazon的專案,然後按一下「確定」。
- 儲存變更。
步驟4:準備電話以進行測試 step-prepare-a-phone-for-testing
iOS ios
若為iOS,請使用macOS電腦並加入iOS開發人員計畫。 有些公司擁有所有開發人員都可使用的公司授權。
使用XCode 8.1時,您必須先前往專案中的功能標籤,並將推播通知切換為開啟,才能使用推播通知。
Android™ android
若要使用CLI在Android™手機上安裝應用程式(請參閱下文: 步驟6 — 建置並部署應用程式),您必須先將手機置於「開發人員模式」。 如需執行此動作的詳細資訊,請參閱啟用裝置上開發人員選項。
步驟5:在AEM應用程式上設定推播 step-configure-push-on-aem-apps
在建置及部署到您設定的行動裝置之前,您必須針對您決定使用的訊息服務設定通知設定。
- 為推播通知建立適當的授權群組。
- 以適當使用者身分登入AEM,按一下「應用程式」標籤。
- 按一下應用程式。
- 找到「管理Cloud Service」圖磚,然後按一下鉛筆圖示,即可修改您的雲端設定。
- 選取Amazon SNS連線、Pushwoosh連線或Adobe Mobile Services作為通知設定。
- 輸入提供者屬性,然後按一下「提交」以儲存這些屬性,再按一下「完成」。 除非有AMS,否則目前階段不會從遠端驗證它們。
- 您現在應該會看到剛才在「管理Cloud Service」圖磚上輸入的設定。
步驟6:建置和部署應用程式 step-build-and-deploy-the-app
注意: 請參閱這裡有關建置PhoneGap應用程式的指示。
有兩種方法可使用PhoneGap建置和部署您的應用程式。
注意: 對於推播通知測試,模擬器是不夠的,因為推播通知在推播提供者(Apple或Google)與裝置之間使用不同的通訊協定。 目前的Mac/PC硬體和模擬器不支援此功能。
-
PhoneGap Build 是PhoneGap提供的服務,可在其伺服器上為您建置您的應用程式,並讓您直接下載到您的裝置。 若要瞭解如何設定和使用PhoneGap Build,請參閱
https://build.phonegap.com/
上的PhoneGap Build檔案。 -
PhoneGap命令列介面 (CLI)可讓您在命令列上使用一組豐富的PhoneGap命令,來建置、偵錯和部署您的應用程式。 請參閱PhoneGap開發人員檔案(
https://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface
),瞭解如何設定和使用PhoneGap CLI。
步驟7:傳送推播通知 step-send-a-push-notification
若要建立通知並傳送,請依照下列步驟進行。
-
建立通知
- 在您的AEM Mobile應用程式控制面板中,找出「推播通知」圖磚。
- 在右上角的功能表中,選擇「建立」。 在首次設定雲端設定之前,此按鈕不可用。
- 在「建立通知精靈」中輸入標題和訊息,然後按一下「建立」按鈕。 您的通知現在已準備好立即或稍後傳送。 可以編輯它,並且可以變更和儲存訊息和/或標題。
-
傳送通知
- 在應用程式控制面板中,找出「推播通知」圖磚。
- 選擇通知,或按一下右下方的詳細資訊按鈕(. …),顯示通知清單。 此清單也會指出通知是否已準備好傳送、已傳送,或傳送期間是否發生錯誤。
- 勾選一個通知的核取方塊(僅限),然後按一下清單上方的「傳送通知」按鈕。 您有機會在出現的對話方塊上「取消」或「傳送」通知。
-
處理結果
-
如果推播通知服務(Amazon SNS或Pushwoosh)收到傳送請求,確認其有效,然後成功傳送給原生提供者(APNS和GCM),「傳送」對話方塊會關閉,但不顯示任何訊息。 在通知清單中,該通知的狀態會列為「已傳送」。
-
如果推送傳送失敗,對話方塊會顯示訊息,指出問題。 在通知清單中,該通知的狀態會列為「錯誤」,但如果問題已解決,則可再次傳送通知。 如果發生錯誤,伺服器錯誤記錄中應該會出現其他錯誤資訊。
-
請注意,iOS和Android™推播通知之間有一些平台差異。 其中包括:
- 使用CLI建置應用程式,會在應用程式部署於Android™上後啟動。 在iOS上,您必須手動啟動。 由於推送註冊步驟會在啟動時進行,Android™應用程式可能會立即收到推送通知(因為它已啟動並註冊),而iOS應用程式則無法進行。
- 在Android™上,「確定」按鈕文字全部大寫(以及在應用程式內通知中新增的任何其他按鈕中),但在iOS中則否。
-
對於AMS推播通知,必須撰寫通知並從AMS伺服器傳送。 AMS提供額外推播通知功能,超出AEM使用AWS和Pushwoosh傳送通知的功能。
設定推播通知的深層連結 configuring-deep-linking-with-push-notifications
什麼是深層連結? 在推播通知的情境下,這是允許應用程式開啟或導向(如果開啟)至應用程式內指定位置的方法。
如何運作? 推播通知的作者可選擇新增按鈕標籤(即「顯示給我!」) 前往通知,並透過視覺路徑瀏覽器選擇他們要在通知中連結的頁面。 傳送後,推播會正常發生,除了應用程式內訊息中,「確定」按鈕會被「解除」按鈕取代,而新按鈕則被指定(「顯示我!」) 也會出現。 按一下新按鈕,應用程式就會移至應用程式內的指定頁面。 按一下「關閉」會排除訊息。
如果應用程式未開啟,則陰影會正常顯示。 在陰影中的通知上採取行動會開啟應用程式,然後根據推播通知中的設定向使用者顯示深層連結按鈕。
建立通知、新增按鈕文字,以及選擇性深層連結的連結路徑:
-
按一下 管理Cloud Service 圖磚右上角的編輯。
-
選取 Pushwoosh連線。 按一下「下一步」。
-
輸入屬性的詳細資料,然後按一下 提交。
一旦您提交設定,推播通知 圖磚就會顯示在儀表板中。
建立通知精靈 create-notification-wizard
在儀表板中顯示 推播通知 圖磚後,請使用建立通知精靈來新增內容:
-
按一下 推播通知 圖磚右上角的新增符號,以開啟 建立通知精靈。
-
按一下連結路徑中的瀏覽圖示,使用者會看到應用程式的內容結構。
選取路徑後,按一下核取圖示。
note note NOTE 連結按鈕文字限製為20個字元。 如果一般使用者沒有最新版本的應用程式,且連結的路徑無法使用,則確認深層連結的動作會將使用者引導至應用程式的首頁面。 -
在 建立通知精靈 中輸入 文字詳細資料,然後按一下 建立。
按一下您從 推播通知 圖磚建立的推播通知,以開啟詳細資料。
您可以編輯屬性、傳送通知或刪除通知。
後續步驟 the-next-steps
瞭解應用程式的推播通知詳細資訊後,請參閱AEM Mobile Content Personalization。