

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將裝置字符與 Amazon SNS 整合以進行行動通知
<a name="mobile-push-send-devicetoken"></a>

當您第一次向通知服務註冊應用程式和行動裝置時，例如 Apple Push Notification Service (APNs) 和 Firebase Cloud Messaging (FCM)，服務會傳回裝置字符或註冊 IDs。這些字符/IDs會新增至 Amazon SNS，以使用 [https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html) API 為應用程式和裝置建立端點。建立端點後，[https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html)會傳回 ，Amazon SNS 會使用它將通知導向正確的應用程式/裝置。

您可以透過下列方式將裝置字符或註冊 IDs 新增至 Amazon SNS：
+ 透過 手動新增單一字符 AWS 管理主控台
+ 使用 [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) API 上傳多個字符
+ 為未來的裝置註冊字符

****手動新增裝置字符或註冊 ID****

1. 登入 [Amazon SNS 主控台](https://console.aws.amazon.com/sns/home)。

1. 在導覽窗格中，選取**推送通知**。

1. 在**平台應用程式**區段中，選取您的應用程式，然後選擇**編輯**。如果您尚未建立平台應用程式，請遵循[建立 Amazon SNS 平台應用程式](mobile-push-send-register.md)指南立即執行此操作。

1. 選擇**建立端點**。

1. 在**端點字符**方塊中，輸入**字符**或**註冊 ID**，視您使用的通知服務而定 （例如 FCM 註冊 ID)。

1. （選用） 在**使用者資料欄位中輸入其他資料**。此資料必須為 UTF-8 編碼且小於 2 KB。

1. 選擇**建立端點**。

建立端點後，您可以將訊息直接傳送到行動裝置或訂閱 Amazon SNS 主題的行動裝置。

****使用 `CreatePlatformEndpoint` API 上傳多個字符****

下列步驟說明如何使用 提供的範例 Java 應用程式 (`bulkupload` 套件） AWS ，將數個字符 （裝置字符或註冊 IDs) 上傳至 Amazon SNS。您可以使用此範本應用程式，來協助您開始上傳現有字符。
**注意**  
下列步驟使用 Eclipse Java IDE。這些步驟假設您已安裝 ， 適用於 Java 的 AWS SDK 而且您擁有 AWS 的安全登入資料 AWS 帳戶。如需詳細資訊，請參閱[適用於 Java 的 AWS SDK](https://aws.amazon.com/sdkforjava/)。如需登入資料的詳細資訊，請參閱《*IAM 使用者指南*》中的[AWS 安全登入](https://docs.aws.amazon.com/general/latest/gr/getting-aws-sec-creds.html)資料。

1. 下載並解壓縮 [snsmobilepush.zip](samples/snsmobilepush.zip) 檔案。

1. 在 Eclipse 中建立新的 **Java 專案**，並將 `SNSSamples` 資料夾匯入專案。

1. 下載 [OpenCSV 程式庫](http://sourceforge.net/projects/opencsv/)並將其新增至建置路徑。

1. 在 `BulkUpload.properties` 檔案中，指定下列項目：
   + 您的 `ApplicationArn`（平台應用程式 ARN)。
   + 包含字符之 CSV 檔案的絕對路徑。
   + 記錄成功和失敗字符的檔案名稱。例如，`goodTokens.csv` 和 `badTokens.csv`。
   + （選用） 分隔符號、引號字元和要使用的執行緒數量的組態。

   您完整的 `BulkUpload.properties` 看起來應與下列類似：

   ```
   applicationarn: arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp
   csvfilename: C:\\mytokendirectory\\mytokens.csv
   goodfilename: C:\\mylogfiles\\goodtokens.csv
   badfilename: C:\\mylogfiles\\badtokens.csv
   delimiterchar: ','
   quotechar: '"'
   numofthreads: 5
   ```

1.  執行 **BatchCreatePlatformEndpointSample.java** 應用程式，將權杖上傳至 Amazon SNS。成功上傳的權杖將登入 `goodTokens.csv`，而格式不正確的權杖將登入 `badTokens.csv`。

**從裝置註冊權杖以供未來的應用程式安裝使用**

此程序有兩個選項：

**使用 Amazon Cognito 服務**  
您的行動應用程式可以使用臨時安全登入資料來建立端點。建議使用 Amazon Cognito 來產生臨時登入資料。如需詳細資訊，請參閱 *[Amazon Cognito 開發人員指南](https://docs.aws.amazon.com/cognito/latest/developerguide/)*   
若要追蹤應用程式[註冊](application-event-notifications.md)，請使用 Amazon SNS 事件在建立新的端點 ARNs時接收通知。  
或者，您可以使用 [https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html) API 來擷取已註冊端點的清單。

**使用代理伺服器**  
如果您的應用程式基礎設施已在安裝時支援裝置註冊，您可以使用伺服器做為代理。它會透過 [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) API 將裝置字符轉送至 Amazon SNS。  
Amazon SNS 建立的端點 ARN 將傳回，並且可由您的伺服器存放以供未來訊息發佈使用。