Apple 推送通知服务绑定说明
关于 Apple 推送通知服务绑定组件的详细文档
组件格式
要配置 Apple 推送通知绑定,请创建一个类型为 bindings.apns
的组件。请参阅本指南了解如何创建和应用绑定配置。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
spec:
type: bindings.apns
version: v1
metadata:
- name: development
value: "<bool>"
- name: key-id
value: "<APPLE_KEY_ID>"
- name: team-id
value: "<APPLE_TEAM_ID>"
- name: private-key
secretKeyRef:
name: <SECRET>
key: "<SECRET-KEY-NAME>"
元数据字段说明
字段 | 必需 | 绑定功能支持 | 详情 | 示例 |
---|---|---|---|---|
development |
Y | 输出 | 指定使用哪个 APNs 服务。设置为 "true" 使用开发服务,或 "false" 使用生产服务。默认值:"true" |
"true" |
key-id |
Y | 输出 | 来自 Apple 开发者门户的私钥标识符 | "private-key-id " |
team-id |
Y | 输出 | 来自 Apple 开发者门户的组织或作者标识符 | "team-id" |
private-key |
Y | 输出 | 这是一个 PKCS #8 格式的私钥。建议将私钥存储在 secret 存储中,而不是直接在配置中暴露。详情请参见此处 | "pem file" |
私钥
APNS 绑定需要一个加密私钥来生成 APNS 服务的身份验证令牌。 私钥可以从 Apple 开发者门户生成,并以 PKCS #8 文件形式提供,存储在 PEM 格式中。 建议将私钥存储在 Dapr 的 secret 存储中,而不是直接在绑定的配置文件中。
以下是 APNS 绑定的示例配置文件:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: apns
spec:
type: bindings.apns
metadata:
- name: development
value: false
- name: key-id
value: PUT-KEY-ID-HERE
- name: team-id
value: PUT-APPLE-TEAM-ID-HERE
- name: private-key
secretKeyRef:
name: apns-secrets
key: private-key
如果使用 Kubernetes,示例 secret 配置可能如下所示:
apiVersion: v1
kind: Secret
metadata:
name: apns-secrets
stringData:
private-key: |
-----BEGIN PRIVATE KEY-----
KEY-DATA-GOES-HERE
-----END PRIVATE KEY-----
绑定功能支持
此组件支持以下操作的输出绑定:
create
推送通知格式
APNS 绑定是 Apple 推送通知服务的直接接口。APNS 绑定将请求直接发送到 APNS 服务而不进行任何处理。 因此,了解 APNS 服务期望的推送通知的有效负载格式非常重要。 有效负载格式记录在此处。
请求格式
{
"data": {
"aps": {
"alert": {
"title": "New Updates!",
"body": "There are new updates for your review"
}
}
},
"metadata": {
"device-token": "PUT-DEVICE-TOKEN-HERE",
"apns-push-type": "alert",
"apns-priority": "10",
"apns-topic": "com.example.helloworld"
},
"operation": "create"
}
data
对象包含一个完整的推送通知规范,如 Apple 文档中所述。data
对象将直接发送到 APNs 服务。
除了 device-token
值外,Apple 文档中指定的 HTTP 头可以作为元数据字段发送,并将包含在对 APNs 服务的 HTTP 请求中。
响应格式
{
"messageID": "UNIQUE-ID-FOR-NOTIFICATION"
}
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.