Apple Push Notification Service绑定规范

有关 Apple 推送通知服务绑定组件的详细文档

配置

要设置Apple Push Notifications绑定,请创建一个类型为bindings.apns的组件。 请参阅本指南,了解如何创建和应用绑定配置。

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: bindings.apns
  8. version: v1
  9. metadata:
  10. - name: development
  11. value: <bool>
  12. - name: key-id
  13. value: <APPLE_KEY_ID>
  14. - name: team-id
  15. value: <APPLE_TEAM_ID>
  16. - name: private-key
  17. secretKeyRef:
  18. name: <SECRET>
  19. key: <SECRET-KEY-NAME>

元数据字段规范

字段必填绑定支持详情示例
developmentYOutput告诉绑定使用哪个APNs服务。 设置为 true 以用于开发环境, false 用于生产环境。 默认: “true”“true”
key-idYOutput来自 Apple 开发者门户的私钥的标识符。“private-key-id
team-idYOutput来自 Apple 开发者门户的组织或作者的标识符。“team-id”
private-keyYOutput是一个PKCS #8格式的私钥。 其目的是将私钥存储在密钥存储中,而不是直接暴露在配置中。 请参阅这里了解更多详情。“pem file”

私钥

APNS绑定需要一个加密私钥,以便为APNS服务生成认证令牌。 私钥可以从Apple开发者门户生成,并以PKCS #8文件的形式提供,私钥以PEM格式存储。 私钥应该存储在Dapr的密钥存储中,而不是直接存储在绑定的配置文件中。

APNS绑定的配置文件示例如下所示:

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: apns
  5. namespace: default
  6. spec:
  7. type: bindings.apns
  8. metadata:
  9. - name: development
  10. value: false
  11. - name: key-id
  12. value: PUT-KEY-ID-HERE
  13. - name: team-id
  14. value: PUT-APPLE-TEAM-ID-HERE
  15. - name: private-key
  16. secretKeyRef:
  17. name: apns-secrets
  18. key: private-key

如果使用Kubernetes,一个示例的密钥配置可能是这样的:

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: apns-secrets
  5. namespace: default
  6. stringData:
  7. private-key: |
  8. -----BEGIN PRIVATE KEY-----
  9. KEY-DATA-GOES-HERE
  10. -----END PRIVATE KEY-----

绑定支持

该组件支持输出绑定,其操作如下:

  • create

输出绑定支持的操作

APNS 绑定是Apple Push Notification Service的通行证封装。 APNS绑定会直接将请求发送到APNS服务,不需要任何翻译。 因此,了解APNS服务所期望的推送通知的有效载荷非常重要。 有效载荷格式在这里有详细文档。

请求格式

  1. {
  2. "data": {
  3. "aps": {
  4. "alert": {
  5. "title": "New Updates!",
  6. "body": "There are new updates for your review"
  7. }
  8. }
  9. },
  10. "metadata": {
  11. "device-token": "PUT-DEVICE-TOKEN-HERE",
  12. "apns-push-type": "alert",
  13. "apns-priority": "10",
  14. "apns-topic": "com.example.helloworld"
  15. },
  16. "operation": "create"
  17. }

data对象包含完整的推送通知规范,如Apple文档中所述。 data对象将直接发送到APNs服务。

除了device-token值之外,Apple文档中指定的HTTP头信息可以作为元数据字段发送,并将包含在向APNs服务发出的HTTP请求中。

响应格式

  1. {
  2. "messageID": "UNIQUE-ID-FOR-NOTIFICATION"
  3. }

相关链接