我想在 Amazon Simple Notification Service (Amazon SNS) 中创建一个 Apple Push Notification Service(APNs)平台应用程序,以发送推送通知。如何使用 AWS Command Line Interface(AWS CLI)而不是 Amazon SNS 控制台创建 APNs 平台应用程序?
简短描述
要使用 AWS CLI 在 Amazon SNS 中创建 APNs 平台应用程序,请运行 create-platform-application 命令。
有关更多信息,请参阅 Amazon SNS API 参考中的 CreatePlatformApplication。
**注意:**您还可以在 Amazon SNS 控制台中创建平台应用程序。
解决方法
注意:Amazon SNS 推送通知并非在所有 AWS 区域都可用。有关更多信息,请参阅移动应用程序支持的区域。如果在运行 AWS CLI 命令时收到错误,请确保您使用的 AWS CLI 为最新版本。
先决条件
您必须拥有适用于 iOS、VoIP 或 MacOS 的有效应用程序。根据应用程序的身份验证方法,您还必须拥有通过自己的 Apple 开发人员账户获得的以下资源:
对于基于证书的身份验证
对于基于令牌的身份验证
- 有效的令牌签名密钥
- 有效的 Apple 团队 ID
- 有效的 Apple 捆绑包 ID
有关更多信息,请参阅《Amazon SNS 开发人员指南》中的 Amazon SNS 用户通知先决条件和 Apple 身份验证方法。
使用 AWS CLI 在 Amazon SNS 中创建 APNs 平台应用程序
对于基于证书的身份验证
1. 运行以下命令:
重要提示:将 Your_Application_Name 替换为您的应用程序的名称。将 Certificates.p12 替换为您的 PKCS#12 文件。根据您的使用案例,将 platform 值替换为APNS_SANDBOX 或 APNS。确保在 PKCS#12 文件所在的相同目录中运行该命令。
aws sns create-platform-application --name Your_Application_Name --platform APNS_SANDBOX --attributes PlatformCredential="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nocerts)\"",PlatformPrincipal="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nokeys)\""
**注意:**对于使用证书凭证的 Apple 服务,PlatformCredential 是私有密钥。PlatformPrincipal 是 SSL 证书。OpenSSL pkcs12 命令将 PKCS#12 文件解析为可读格式,以进行基于证书的身份验证。有关更多信息,请参阅 OpenSSL 网站上的 pkcs12。
出现输入导入密码值的提示。
2. 对于导入密码,请输入从 Keychain Access 应用程序导出 PKCS#12 文件时创建的密码。
对于基于令牌的身份验证
运行以下命令:
重要提示:将 PlatformCredential 替换为您的令牌签名密钥。将 PlatformPrincipal 替换为您的令牌签名密钥 ID。将 ApplePlatformTeamID 替换为您的 Apple 团队 ID。将 ApplePlatformBundleID 替换为您的 Apple 捆绑包 ID。根据您的使用案例,将 platform 值替换为APNS_SANDBOX 或 APNS。将 Token.p8 替换为您的 PKCS#8 文件。确保在 PKCS#8 文件所在的相同目录中运行该命令。
aws sns create-platform-application --name token --platform APNS_SANDBOX --attributes ApplePlatformTeamID=XXXXXXX,ApplePlatformBundleID=com.XXXXX,PlatformPrincipal=XXXXXXX,PlatformCredential="\"$(openssl pkcs8 -in Token.p8 -nocrypt)\""
**注意:**对于使用令牌凭证的 Apple 服务,PlatformCredential 是令牌签名密钥。PlatformPrincipal 是令牌签名密钥 ID。OpenSSL pkcs8 命令以 PKCS#8 格式处理私有密钥,然后将其解析为可读格式,以进行基于令牌的身份验证。有关更多信息,请参阅 OpenSSL 网站上的 pkcs8。
有关平台属性的更多信息,请参阅 Amazon SNS API 参考中的 SeePlatformApplicationAttributes。
相关信息
移动推送 API 错误
设置移动应用程序
移动推送 API 操作