APNS提供商API和邮递员

时间:2017-08-30 16:35:16

标签: ios ssl apple-push-notifications postman

我正在尝试使用Postman在我的iOS应用程序中创建和测试Apple Notifications。

由于我没有得到的原因,我从邮递员发送到https://api.push.apple.com/3/device/<token-device>openssl pkcs12 -in apns.p12 -out apns.crt.pem -clcerts -nokeys openssl pkcs12 -in apns.p12 -out apns.key.pem -nocerts -nodes 的请求失败而没有得到任何HTTP响应。

到目前为止我做了什么:

1 - 从我的developer.apple.com帐户创建并导出了APNS证书(如there所述)。

2 - 将此.p12证书与最新版本的openssl(1.0.2l)转换为.pem证书和密钥,如下所示:

apns-topic

3 - 配置邮递员(首选项&gt;证书)以将这些.pem文件用于提供者API网址(dev和prod)

4 - 为我的设备令牌的那些Provider API端点设置一个POST请求,其中{ "aps" : { "alert" : { "title" : "Game Request", "body" : "Bob wants to play poker" } } } 标头包含我的bundle id for value,以及一个HTTP主体,如下所示:

openssl s_client -connect api.development.push.apple.com:443 -cert apns.pem -debug -showcerts -CAfile GeoTrust_Global_CA.pem

失败了,“无法得到任何回应,blablabla”。

如果我检查Postman控制台发生了什么,我看到了:

  

POST   https://api.development.push.apple.com/3/device/12340e529f85a145b567736e7fd84c9d7e42a43a3c343ec378c2ff071011e4   06:18:08.236

     

错误:解析错误

     

客户证书:

     

的keyPath: “/用户/托马斯/ wksp_myproj / apns.key.pem”

     

pemPath: “/用户/托马斯/ wksp_myproj / apns.crt.pem”

     

请求标题:

     

缓存控制: “无缓存”

     

邮差令牌: “99615df2-b2aa-4a51-8d15-8ce27f4e8ca9”

     

内容类型: “应用/ JSON”

     

APNS-主题: “myproj.app”

此外,当我按照there解释时使用openssl进行测试时:

HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 0aread from 0x7f9445c215c0 [0x7f9446015c03] (5 bytes => 0 (0x0)) read:errno=0

最后我得到了很多输出: div

出了什么问题?

1 个答案:

答案 0 :(得分:0)

好的,忘了Postman,我结束了使用curl和http2以及openssl(1.0.2l)的更新版本,它的工作正常。对于那些想要查看curl命令示例的人来说,它是here