SNS:如何为 APNS voip 创建平台应用程序?
Posted
技术标签:
【中文标题】SNS:如何为 APNS voip 创建平台应用程序?【英文标题】:SNS: How to create platform application for APNS voip? 【发布时间】:2021-07-01 15:45:17 【问题描述】:我正在尝试以编程方式为 APNS 创建一个平台应用程序来执行 voip 推送通知。我正在使用 voip 证书并这样做:
var attributes = new Dictionary<string, string>
"PlatformCredential", password ,
"PlatformPrincipal", $"-----BEGIN CERTIFICATE-----\n apnsCertificate \n-----END CERTIFICATE-----"
;
var request = new CreatePlatformApplicationRequest Attributes = attributes, Name = "ApnsPlatform", Platform = "APNS" ;
var response = _amazonSnsClient.CreatePlatformApplication(request);
但是,我收到此错误消息,提示我无法将 VoIP 证书用于应用程序 ios 生产:
Amazon.SimpleNotificationService.Model.InvalidParameterException: Invalid parameter: Attributes Reason: You provided a certificate of type VoIP, which cannot be used to create an application of type iOS Production. Please select an application of type VoIP or provide a certificate of type iOS Production
所以,我一直在想我需要将上述方法中的“平台”属性设置为“APNS_VOIP”/“VOIP”/“VoIP”之类的东西(我尝试了一些),但仅限 SNS 文档指定 APNS 和 APNS_SANDBOX。我有一种感觉,我在这里遗漏了一些明显的东西,但是搜索了很多却没有找到任何东西。
【问题讨论】:
【参考方案1】:结果证明设置“Platform = APNS_VOIP”是正确的方法!尝试了这么多东西,我想我累了,错过了不同的错误消息。
如果输入无效的平台类型,则错误表示它无效或未知,但对于 APNS_VOIP,它反而表示凭据有问题。就我而言,我不明白上述“PlatformCredential”属性中的密码也需要用 BEGIN/END 关键字括起来,但这里是“RSA PRIVATE KEY”,如下所示:
"PlatformCredential", $"-----BEGIN RSA PRIVATE KEY-----\n password \n-----END RSA PRIVATE KEY-----"
然后我可以为 VoIP 创建一个平台应用程序。
【讨论】:
以上是关于SNS:如何为 APNS voip 创建平台应用程序?的主要内容,如果未能解决你的问题,请参考以下文章